我有一个大约15000行乘1000列的数据框,以下代码段:
ID 1211 2332 3423 4534
Time
2019-10-03 07:00:00 0 1 1 1
2019-10-03 07:10:00 0 0 0 1
2019-10-03 07:20:00 1 1 0 1
2019-07-03 07:30:00 1 1 1 1
使用以下命令将其设置为pivot2:
python command
pivot=df.pivot(index='Time',columns='ID',values='result')
我想对此进行总结,以便可以查看每天的数据,并且每天的值都应用了求和/计数公式。
我正在寻找以下形状的数据:
行是按天。
列是该天所有值为1的ID的计数除以该天的观测总数。
例如,对于上述ID 1211,在2019-10-03日期中,三个总值中有1个出现了1。所以我想要一个1/3 = 0.33的值。
ID 1211 2332 3423 4534
Time
2019-10-03 0.33 0.67 0.33 1.00
2019-07-03 1.00 1.00 1.00 1.00
我希望这是有道理的。任何帮助将不胜感激!
您可以按照建议使用groupby
+ @WenYoBenmean
mean_df=df.groupby(df.index.date).mean()
print(mean_df)
ID 1211 2332 3423 4534
2019-07-03 1.000000 1.000000 1.000000 1.0
2019-10-03 0.333333 0.666667 0.333333 1.0
可以计算值Series.value_counts
:
my_count=df.groupby(df.index.date).apply(lambda x: pd.concat([x[col].value_counts() for col in x.columns],axis=1)).fillna(0)
print(my_count)
1211 2332 3423 4534
2019-07-03 1 1 1 1 1.0
2019-10-03 0 2 1 2 0.0
1 1 2 1 3.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句