我有来自日志分析的以下输出,并希望使用pandas来组合来自多个服务器的这些输出,以确定所有服务器上每个条目的总频率。我已将这些项重新命名为隐私,但每个条目对于每个服务器都是唯一的,并且在服务器之间是通用的。
想知道当条目名称匹配时,大熊猫如何将频率加在一起。
感谢。
6201 entry1
63 entry2
4 entry3
3 entry4
3 entry5
2 entry6
1 entry7
1 entry8
1 entry9
答案 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