これを試してみてください? (ところで、kaggle映画のセット、より良いLabelEncoder
を使用して)
PS:私は列name
を追加しなかった、あなたは単にout['name']=df.name
オプション1 pd.crosstab
df.actors=df.actors.str.split(',')
df1=df.set_index('name').actors.apply(pd.Series).stack()
pd.crosstab(df1.index.get_level_values(0),df1).rename_axis(None).rename_axis(None,1)
Out[246]:
a b c d m
A 1 1 0 0 0
B 0 1 0 1 0
C 0 0 1 0 1
を行うことができますオプション2 get_dummies
pd.get_dummies(df.actors.str.split(',').apply(pd.Series).stack()).sum(level=0)
Out[230]:
a b c d m
0 1 1 0 0 0
1 0 1 0 1 0
2 0 0 1 0 1
オプション3 MultiLabelBinarizer
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
pd.DataFrame(mlb.fit_transform(df.actors.str.split(',')),columns=mlb.classes_,index=df.name).reset_index()
Out[238]:
name a b c d m
0 A 1 1 0 0 0
1 B 0 1 0 1 0
2 C 0 0 1 0 1
データ入力
df=pd.DataFrame({'name':['A','B','C'],'actors':['a,b','b,d','c,m']})
出典
2017-09-19 02:17:32
Wen
ない画像として、テキストなどのデータを追加してください。 Pythonに直接コピー&ペーストできるようにするのが望ましいです。これまでに何を試しましたか?何がうまくいかなかったのですか? –