【发布时间】:2021-06-07 11:58:53
【问题描述】:
我有一个如下所示的数据框:
df =
date val1
01/02/2021 2.0
02/02/2021 2.0
03/02/2021 1.0
04/02/2021 1.5
05/02/2021 10.0
06/02/2021 7.0
07/02/2021 4.0
然后我创建另一个列,如果val1 高于例如1 5,否则0,即:
import numpy as np
import pandas as pd
df['above_five'] = np.where(df['val1'] > 5.0, 1, 0)
哪个会返回:
df =
date val1 above_five
01/02/2021 2.0 0
02/02/2021 2.0 0
03/02/2021 1.0 0
04/02/2021 1.5 0
05/02/2021 10.0 1
06/02/2021 7.0 1
07/02/2021 4.0 0
我的下一步是我有点不确定。我现在希望将数据框“压缩”为每周周期,但使用新列或计算该周 1 出现次数的东西。
我试过这个,但这很重要,所以它似乎并不专注于 1:
new_df = df.resample('W', on='date').count()
实际上输出应该是这样的(假设01/02/2021 是星期一):
final_df =
date above_five_counts
Week 1* 2
*或只是表明这是第一周的某个日期,例如一周的第一天或最后一天。
【问题讨论】:
-
count为您提供每组中每列中非空值的数量。你要sum以上_五栏:df.resample('W', on='date')['above_five'].sum()