在条件矩阵中添加新列

2024-07-07 09:03:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大矩阵导入一个.csv更多的5万行

我正在与熊猫和numpy,矩阵是一个电影数据库,我想添加一个新的条件列

其中一个矩阵列是genres,是一个具有不同类型的字符串,我想创建一个新列,称为“戏剧是”或“否”,其中一个条件求值列,如果该列在字符串中包含“戏剧”,则写入1

我试图用这个代码,但我有这个错误。 ('float'类型的参数不可iterable,'u'出现在索引424')

def dram_genres(passenger):
    original_title, genres = passenger
    #if genres.find('Drama') != -1:
    if "Drama" in genres: 
        return 'Drama'
    else:
        return 'Not Drama'


# adds new column to dataframe specifying if the film is good/bad
IMDb_data['Drama_or_not'] = IMDb_data[['original_title', 'genres']].apply(dram_genres, axis=1)

IMDb_data[['original_title', 'genres', 'budget','vote_average','Drama_or_not']].head(7)

你能帮帮我吗

提前谢谢


Tags: 字符串类型datareturniftitle矩阵条件
1条回答
网友
1楼 · 发布于 2024-07-07 09:03:20

如果我理解正确,您可以使用以下处理方法执行相同的代码:

df = pd.DataFrame({'genre':['Action', 'Drama', 'Drama ', 
                             ' Drama', 'Western', 'Other Drama', 10]})

df['Drama_or_not'] = df['genre'].str.find('Drama')>0

这也应该解决您的错误:

"argument of type 'float' is not iterable".

我想,这个错误出现在第四行,因为genres是一个float而不是iterable对象(例如,字符串或列表)

不过,您应该小心,如果在一个只用于字符串的列中有浮点值,那么您应该优先清理和检查数据,以便了解为什么会出现这种情况

相关问题 更多 >