在频率表中将数据帧与sum函数组合在一起

时间:2017-07-26 20:06:36

标签: pandas

我有来自日志分析的以下输出,并希望使用pandas来组合来自多个服务器的这些输出,以确定所有服务器上每个条目的总频率。我已将这些项重新命名为隐私,但每个条目对于每个服务器都是唯一的,并且在服务器之间是通用的。

想知道当条目名称匹配时,大熊猫如何将频率加在一起。

感谢。

6201            entry1
63              entry2
4               entry3
3               entry4
3               entry5
2               entry6
1               entry7
1               entry8
1               entry9

2 个答案:

答案 0 :(得分:1)

您可以使用df.groupby并应用.agg,通过sum汇总每个组中的所有值:

df.groupby('entries').agg('sum')

稍微修改了一下数据:

In [610]: df
Out[610]: 
   values entries
0    6201  entry1
1      63  entry2
2       4  entry3
3       3  entry1
4       3  entry4
5       2  entry3
6       1  entry3
7       1  entry2
8       1  entry2

In [611]: df.groupby('entries').agg('sum')
Out[611]: 
         values
entries        
entry1     6204
entry2       65
entry3        7
entry4        3

或者,直接使用.sum()

In [612]: df.groupby('entries').sum()
Out[612]: 
         values
entries        
entry1     6204
entry2       65
entry3        7
entry4        3

答案 1 :(得分:0)

另一种方法:

In [121]: df
Out[121]:
   values entries
0    6201  entry1
1      63  entry2
2       4  entry3
3       3  entry1
4       3  entry4
5       2  entry3
6       1  entry3
7       1  entry2
8       1  entry2

In [122]: df.set_index('entries').sum(level=0)
Out[122]:
         values
entries
entry1     6204
entry2       65
entry3        7
entry4        3