繁体   English   中英

使用 python pandas 数据框时,如何对列进行分组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM