【发布时间】:2021-07-13 21:45:42
【问题描述】:
我有一个包含虚拟变量的数据框;但是,我想将多列(100+)分组为几列。我们欢迎所有的建议。谢谢! 例如:
A_1 | A_2 | A_3| B_1| B_2| B_3| C_1| C_2| C_2|
0 | 0| 1| 0| 0| 0| 0| 0| 0| 0|
1 | 0| 0| 0| 0| 0| 1| 0| 1| 0|
2 | 0| 0| 0| 0| 0| 0| 1| 0| 0|
3 | 0| 0| 0| 0| 1| 0| 0| 0| 0|
4 | 1| 0| 0| 0| 0| 0| 0| 0| 0|
5 | 0| 0| 1| 0| 0| 0| 0| 1| 0|
6 | 0| 0| 0| 1| 0| 0| 0| 0| 0|
期望的输出:
A| B| C|
0| 1| 0| 0|
1| 0| 1| 1|
2| 0| 0| 1|
3| 0| 1| 0|
4| 1| 0| 0|
5| 1| 0| 1|
6| 0| 1| 0|
我已尝试使用此代码;但是,我不断遇到错误消息,提示缺少列名。
categories = {'A':'A','B': 'B','C': 'C'}
def correct_categories(cols1):
return [categories[cat] for col1 in cols1 for cat in categories.keys() if col1.startswith(cat)]
rslt = df3.groupby(correct_categories(df3.columns),axis=1).sum()
print(rslt)
错误信息:KeyError: 'A'
【问题讨论】:
标签: python pandas dataframe group-by pandas-groupby