我正在尝试使用Pandas get_dummies对数据集中的一列进行编码,但由于未过滤该列中数组中的每个关键字,因此它返回0。
import pandas as pd
import numpy as np
# Load Movies Metadata
metadata = pd.read_csv('moviesNew1.csv', low_memory=False)
print(metadata.info())
cat_columns = ['genres']
df_processed = pd.get_dummies(metadata,
prefix_sep="__",columns=cat_columns)
print(df_processed.head(10))
对于正确的电影,应在电影类型中添加1;对于不匹配的电影,应添加0。
答案 0 :(得分:0)
您应该在列中放入要转换为data参数的内容。我的数据:
score genres
0 1 crime
1 2 romance
2 1 horror
3 4 crime
df_processed = pd.get_dummies(metadata['genres'])
Result:
crime horror romance
0 1 0 0
1 0 0 1
2 0 1 0
3 1 0 0
现在我们得到了假人。但是,为了使它们与其他功能一起回到原始数据框中,我这样做:
df_concat = pd.concat([df_processed, metadata], axis=1)
Result:
score genre crime horror romance
0 1 crimi 1 0 0
1 2 romance 0 0 1
2 1 horror 0 1 0
3 4 crimi 1 0 0
以下解决方案将一次性完成上述步骤。因此,如果您对单独的DF中的虚拟变量不感兴趣,请执行以下操作:
df_processed = pd.get_dummies(metadata, columns=['genre'])