如何检查和分组所有对象从列中的数据帧开始

2024-06-02 06:35:49 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个我需要检查、分组和汇总所有数据的数据框

我使用regex函数查找并分组了所有特定组的数据,这些数据从各自的国家开始

假设我有一个数据集

Countries    31-12-17   1-1-18  2-1-18  3-1-18  Sum
India-Basic    1200      1100    800     900    4000
Sweden-Basic   1500      1300    700     1500   5000
Norway-Basic   800       400     900      900   3000
India-Exp      600       1400    300      200   2500
Sweden-Exp     1800      400     600     700    3500
Norway-Exp     1300      1600    1100    1500   4500

预期产出:

Countries    Sum
India        6500
Sweden       8500
Norway       7500

印度


Tags: 数据函数basic国家countriesregex汇总sum
2条回答

用于正则表达式解决方案^{}和聚合sum

df1 = (df.groupby(df['Countries'].str.extract('(.*)-', expand=False), sort=False)['Sum']
         .sum()
         .reset_index())
print (df1)
  Countries   Sum
0     India  6500
1    Sweden  8500
2    Norway  7500

备选si按-分割Countries并按str[0]选择第一个列表:

df1 = (df.groupby(df['Countries'].str.split('-').str[0], sort=False)['Sum']
        .sum()
        .reset_index())
print (df1)
  Countries   Sum
0     India  6500
1    Sweden  8500
2    Norway  7500

这可能会起作用-请注意,我只筛选了相关的列:

(df.filter(['Countries','Sum'])
 .assign(Countries = lambda x: x.Countries.str.split('-').str.get(0))
 .groupby('Countries')
 .agg('sum')
)    


             Sum
Countries   
 India      6500
 Norway     7500
 Sweden     8500

相关问题 更多 >