Pandas 大熊猫按行索引分组
我想每7行分组求和(从而得到每周的总数)。目前有两列。一个用于日期,另一个用于浮动Pandas 大熊猫按行索引分组,pandas,Pandas,我想每7行分组求和(从而得到每周的总数)。目前有两列。一个用于日期,另一个用于浮动 1/22/2020 NaN 1/23/2020 0.0 1/24/2020 1.0 1/25/2020 0.0 1/26/2020 3.0 1/27/2020 0.0 1/28/2020 0.0 1/29/2020 0.0 1/30/2020 0.0 1/31/2020 2.0 2/1/2020 1.0 2/2/2020 0.0 2/3/2020 3.0
1/22/2020 NaN
1/23/2020 0.0
1/24/2020 1.0
1/25/2020 0.0
1/26/2020 3.0
1/27/2020 0.0
1/28/2020 0.0
1/29/2020 0.0
1/30/2020 0.0
1/31/2020 2.0
2/1/2020 1.0
2/2/2020 0.0
2/3/2020 3.0
2/4/2020 0.0
2/5/2020 0.0
2/6/2020 0.0
2/7/2020 0.0
2/8/2020 0.0
2/9/2020 0.0
2/10/2020 0.0
2/11/2020 1.0
2/12/2020 0.0
2/13/2020 1.0
2/14/2020 0.0
2/15/2020 0.0
2/16/2020 0.0
2/17/2020 0.0
2/18/2020 0.0
2/19/2020 0.0
2/20/2020 0.0
... ...
2/28/2020 0.0
2/29/2020 8.0
3/1/2020 6.0
3/2/2020 23.0
3/3/2020 20.0
3/4/2020 31.0
3/5/2020 68.0
3/6/2020 45.0
3/7/2020 119.0
3/8/2020 114.0
3/9/2020 64.0
3/10/2020 194.0
3/11/2020 397.0
3/12/2020 452.0
3/13/2020 590.0
3/14/2020 710.0
3/15/2020 61.0
3/16/2020 1389.0
3/17/2020 1789.0
3/18/2020 906.0
3/19/2020 3068.0
3/20/2020 4009.0
3/21/2020 4017.0
3/23/2020 25568.0
3/24/2020 10074.0
3/25/2020 12043.0
3/26/2020 18058.0
3/27/2020 17822.0
3/28/2020 19825.0
3/29/2020 19408.0
将日期列设置为索引,并使用
resample
df['Date'] = pd.to_datetime(df['Date'])
df = df.set_index('Date')
df.resample('1W').sum()
将日期列设置为索引,并使用
resample
df['Date'] = pd.to_datetime(df['Date'])
df = df.set_index('Date')
df.resample('1W').sum()
假设日期列名为
dt
,值列名为val
:
将numpy导入为np
#如果尚未采用日期时间格式:
df[“dt”]=pd.to_datetime(df[“dt”])
#您的数据看起来已排序,但如果未排序,则为先决条件:
df=df.排序_值(“dt”)
df=df.groupby(np.arange(len(df))//7.agg({“dt”:(min,max),“val”:sum})
对
dt
进行聚合只是为了让您可以明确地指示聚合间隔-例如,只需取min
,或者完全忽略它就足够了…假设您的日期列被称为dt
,并且您的值列是val
:
将numpy导入为np
#如果尚未采用日期时间格式:
df[“dt”]=pd.to_datetime(df[“dt”])
#您的数据看起来已排序,但如果未排序,则为先决条件:
df=df.排序_值(“dt”)
df=df.groupby(np.arange(len(df))//7.agg({“dt”:(min,max),“val”:sum})
对
dt
进行聚合只是为了让您可以明确地指示聚合间隔-例如,只需取min
就足够了,或者完全忽略它…对NaN
必须做什么?NaN可以是zeroN=7 df.groupby(df.index//N).sum()gives TypeError:无法使用此索引类型执行floordiv:IndexNan?NaN可以是zeroN=7 df.groupby(df.index//N)。sum()gives TypeError:无法使用此索引类型执行floordiv:IndexI怀疑这是OP想要的,但不是问题中所述的-也就是说,它是7行而不是天;)^^^是的,每7排比每排都多week@machinelearner07-看看我的答案-正好每7行一次。我怀疑这是OP想要的,但这不是问题中所说的-也就是说,这是7行而不是几天;)^^^是的,每7排比每排都多week@machinelearner07-看看我的答案-正好每7行一次。