[英]When using python pandas dataframe, how do you group columns?
我的输入 excel (xlsx) 文件的格式如下:
mz n n n n g_1 g_1 g_2 g_2 g_2
1 2 3 4 5 6 7 8 8 8
1 2 3 4 5 6 7 8 8 8
1 2 3 4 5 6 7 8 8 8
1 2 3 4 5 6 7 8 8 8
当我使用 pd.read_excel 读取文件时,它以某种方式向每一列添加数字,例如:
mz n n.1 n.2 n.3 g_1 g_1.1 g_2 g_2.1 g_2.2
1 2 3 4 5 6 7 8 8 8
1 2 3 4 5 6 7 8 8 8
1 2 3 4 5 6 7 8 8 8
所以我无法使用 groupby 将那些带有“n”、“g_1”等的分组。 有没有办法让 groupby 在特定的组上工作? 我尝试合并具有相同类型的列标题但无济于事。
编辑:我选择的答案解决了这个问题。 不过,我还有一个问题。 当我从答案中添加代码时,生成的分组数据框的列全部乱序。 有没有办法保留列名的顺序? 谢谢!
IIUC,在'.'之前的第一部分使用split
then group:
df.groupby(df.columns.str.split('.').str[0], axis=1).sum()
输出:
g_1 g_2 mz n
0 13 24 1 14
1 13 24 1 14
2 13 24 1 14
df 在哪里:
mz n n.1 n.2 n.3 g_1 g_1.1 g_2 g_2.1 g_2.2
0 1 2 3 4 5 6 7 8 8 8
1 1 2 3 4 5 6 7 8 8 8
2 1 2 3 4 5 6 7 8 8 8
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.