Pandas 0.20.3 - 请原谅可怜的头衔。我不知道描述它的最佳方式。
数据帧:
In [363]: df
Out[363]:
IP Jroid ST
0 127.0.0.3 Joid12 stq
1 127.0.0.2 Jroid2 stt
2 127.0.0.1 Jroid1 sth
3 127.0.0.1 Jroid1 stl
4 127.0.0.1 Jroid3 stj
5 127.0.0.1 Jroid2 ll
6 127.0.0.2 Jroid1 stq
7 127.0.0.1 Jroid3 stt
8 127.0.0.1 Jroid1 sth
9 127.0.0.2 Jroid1 stl
10 127.0.0.3 Jroid1 stq
11 127.0.0.3 Jroid3 stt
DataFrame完美地满足了我的需求:
In [365]: df.groupby(['IP','Jroid','ST']).ST.agg('count')
Out[365]:
IP Jroid ST
127.0.0.1 Jroid1 sth 2
stl 1
Jroid2 ll 1
Jroid3 stj 1
stt 1
127.0.0.2 Jroid1 stl 1
stq 1
Jroid2 stt 1
127.0.0.3 Joid12 stq 1
Jroid1 stq 1
Jroid3 stt 1
Name: ST, dtype: int64
现在
df.groupby(['IP','Jroid','ST']).ST.agg('count').to_csv('/tmp/hi.csv')
渲染:
127.0.0.1,Jroid1,sth,2
127.0.0.1,Jroid1,stl,1
127.0.0.1,Jroid2,ll,1
127.0.0.1,Jroid3,stj,1
127.0.0.1,Jroid3,stt,1
127.0.0.2,Jroid1,stl,1
127.0.0.2,Jroid1,stq,1
127.0.0.2,Jroid2,stt,1
127.0.0.3,Joid12,stq,1
127.0.0.3,Jroid1,stq,1
127.0.0.3,Jroid3,stt,1
我怎样才能拥有" to_csv"保存" df.groupby([' IP',' Jroid'' ST'])表示的确切方式.ST.agg( '计数')&#34 ;? 有可能吗?
创建一个新的df似乎没有帮助:
print_df = df.groupby(['IP','Jroid','ST']).ST.agg('count')
print_df.to_csv('/tmp/hi.csv')
虽然做同样的事情。