Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对数据帧中的某些行组求和_Python_Pandas - Fatal编程技术网

Python 对数据帧中的某些行组求和

Python 对数据帧中的某些行组求和,python,pandas,Python,Pandas,我有一个pandas数据框,我想对某些不规则间隔的日期之间的值求和。举个例子,我有这样的东西: 日期 小部件 2021-03-01 1. 2021-03-02 0 2021-03-03 1. 2021-03-04 3. 2021-03-05 1. 2021-03-06 2. 您可以尝试以下方法: df['date'] = pd.to_datetime(df['date']) #convert to datetime 然后检查截止值和累积值的出现情况,并将其用作grouper列: cutoff

我有一个pandas数据框,我想对某些不规则间隔的日期之间的值求和。举个例子,我有这样的东西:

日期 小部件 2021-03-01 1. 2021-03-02 0 2021-03-03 1. 2021-03-04 3. 2021-03-05 1. 2021-03-06 2. 您可以尝试以下方法:

df['date'] = pd.to_datetime(df['date']) #convert to datetime

然后检查截止值和累积值的出现情况,并将其用作grouper列:

cutoffs= ['2021-03-01', '2021-03-04', '2021-03-05']
cond = df['date'].isin(pd.to_datetime(cutoffs))
df['sums'] = df.groupby(cond.cumsum())['widgets'].transform('sum').where(cond,0)

print(df)

        date  widgets    sums
0 2021-03-01        1       2
1 2021-03-02        0       0
2 2021-03-03        1       0
3 2021-03-04        3       3
4 2021-03-05        1       3
5 2021-03-06        2       0

非常好,谢谢!