groupby 和 for 循环与熊猫

黄道山

我是 python3 的新手,几个月前我是 R 用户。
这是问题所在。
我的数据框(df1)有点像这样:

   Date         quarter        number
2015-10-09          1           250
2015-10-09          2           400
2015-10-09          3           310
2015-10-10          1           300
2015-10-10          2           410
2015-10-10          3           280
    .               .            .
    .               .            .

数据有5000多条。上图只有几行。
我想要的是每天季度之间的绝对差异数字。
我想要的结果数据框应该如下图所示:

   Date          absolute_interval
2015-10-09            150
2015-10-09            90
2015-10-10            110
2015-10-10            130
    .                 .            
    .                 .         

我尝试使用df2=df1.groupby('Date')
然后我想申请循环。
我的伪代码是

for k in df2:
    for u in df2[k]:

但我认为这行不通,所以我目前被困在这里。
任何解决方案?
谢谢,祝你有美好的一天。

奥尼亚布
 pd.concat([df.Date,df.groupby('Date').number.diff().abs()],axis=1).dropna()
Out[608]: 
         Date  number
1  2015-10-09   150.0
2  2015-10-09    90.0
4  2015-10-10   110.0
5  2015-10-10   130.0

你也可以这样做:

pd.DataFrame(df.groupby('Date').apply(lambda x: abs(x['number']-x['number'].shift(1))).dropna())

              number
Date                
2015-10-09 1   150.0
           2    90.0
2015-10-10 4   110.0
           5   130.0

.reset_index()如果需要,可以在最后添加

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章