首页 > 解决方案 > 如何使用 apply 将列作为参数传递给类

问题描述

class Movie:

    def __init__(self, title, imdb, critic, quote):
        self.title = title
        self.imdb = imdb
        self.critic = critic
        self.quote = quote

    def mashup(self):    
        x =self.title + self.imdb + self.critic + self.quote
        return self.x

df['concat'] = df.apply(Movie,axis=1)

我希望看到的结果是将每一列连接为数据框中的新列。

问题是 Movie 没有收到预期数量的参数,我没有调用 mashup 方法,但不确定出了什么问题。

TypeError: ("__init__() missing 3 required positional arguments: 'imdb', 'critic', and 'quote'", 'occurred at index 0')

标签: pythonpandas

解决方案


你为什么要使用类来做到这一点?如果您的数据在 pandas 数据框中,您可以简单地执行以下操作:

df['concat'] = df['title'] + df['imdb'] + df['critic'] + df['quote']

推荐阅读