使用
get_dummies有
max:
df = pd.get_dummies(df.set_index('Col 1')['Col 2'], dtype=bool).rename_axis(None).max(level=0)print (df) 1 2 3A False True TrueB True True False
或者,如果可能的话,不要在列中丢失任何值,
Col2然后
Dataframe.pivot与一起使用
Dataframe.notna,以删除索引和列名,请使用
Dataframe.rename_axis:
df = df.pivot('Col 1', 'Col 2', 'Col 1').notna().rename_axis(index=None, columns=None)print (df) 1 2 3A False True TrueB True True False
备选方案可能是重复项,但
pivot失败了:
df = (df.pivot_table(index='Col 1', columns='Col 2', values='Col 1', aggfunc='size') .notna() .rename_axis(index=None, columns=None))print (df) 1 2 3A False True TrueB True True False
或评论中的解决方案:
df = (pd.crosstab(df['Col 1'], df['Col 2']) .gt(0) .rename_axis(index=None, columns=None))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)