考虑由时间戳索引的数据帧“数据”,如下所示:
Index Receiver Type Retry
1970-01-01 00:00:00.000000000 R1 Data 1
1970-01-01 00:00:00.800000000 R1 Non-Data 1
1970-01-01 00:00:01.000287000 R2 Data 0
1970-01-01 00:00:01.600896000 R2 Data 1
1970-01-01 00:00:02.001388000 R1 Data 1
1970-01-01 00:00:02.004698000 R1 Non-Data 1
1970-01-01 00:00:02.006706000 R2 Data 1
1970-01-01 00:00:02.501351000 R2 Data 1
1970-01-01 00:00:02.810382000 R1 Data 0
1970-01-01 00:00:03.001981000 R1 Data 0
1970-01-01 00:00:03.377116000 R1 Data 0
1970-01-01 00:00:03.701811000 R2 Data 1
1970-01-01 00:00:03.910326000 R2 Data 0
1970-01-01 00:00:03.951355000 R2 Non-Data 1
我想查找类型为“数据”且重试等于 1 的所有行,然后以 1 秒的间隔对索引进行分组,以查找每种接收器类型的计数。
所需输出为 df2:
Index R1 R2
1970-01-01 00:00:00 1 0
1970-01-01 00:00:01 0 1
1970-01-01 00:00:02 1 2
1970-01-01 00:00:03 0 1
可以用一个简单的方法来完成pivot_table
i.e
ndf = df[df['Type'].eq('Data')].pivot_table(columns=['Receiver'],values='Retry',
index=pd.Grouper(key='Index',freq='s'), aggfunc='sum',fill_value=0)
Receiver R1 R2
Index
1970-01-01 00:00:00 1 0
1970-01-01 00:00:01 0 1
1970-01-01 00:00:02 1 2
1970-01-01 00:00:03 0 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)