我有一个熊猫数据框,格式为:
df
col_1 col_2 col_3 col_4
ID
1 A B C A
2 B D
3 A C B
df = pd.DataFrame({'col_1':['A','B','A'], 'col_2':['B','D','C'], 'col_3':['C',np.NaN,'B'], 'col_4':['A', np.NaN, np.NaN]}, index=[1,2,3])
请注意,跨列重复的值不是偶然的-它们引用相同的实体(例如col_1中的A与col_4中的A相同)。我正在尝试透视此数据框的值,以使这些唯一值成为新的列。例如, df 将变为:
new_df
A B C D
ID
1 2 1 1 0
2 1 0 0 1
3 1 1 1 0
新值表示计数。我已经尝试过pd.get_dummies(),但它没有给我我想要的东西。实现这一目标的最直观的方法是什么?
答案 0 :(得分:4)
IIUC使用str.get_dummies
和df.stack().loc[lambda x : x!=''].str.get_dummies().sum(level=0)
A B C D
ID
1 2 1 1 0
2 0 1 0 1
3 1 1 1 0
<label>{{currentDate | date:'MMM'}}</label>
<button (click)="nextMonth()">Next</button>