用第一个元素pandas除以groupby对象。

问题描述 投票:0回答:1

我有一个类型的数据集。

           Date    ID  window        var  win_ID
0    1998-01-28     X      -5  8.500e-03       1
1    1998-01-28     Y      -5  1.518e-02       1
2    1998-01-29     X      -4  8.005e-03       1
3    1998-01-29     Y      -4  7.905e-03       1
4    1998-01-30     X      -3 -5.497e-03       1
         ...   ...     ...        ...
3339 2016-12-19     Y       3 -4.365e-04     152
3340 2016-12-20     X       4  3.628e-03     152
3341 2016-12-20     Y       4  6.608e-03     152
3342 2016-12-21     X       5 -2.467e-03     152
3343 2016-12-21     Y       5 -2.651e-03     152

我的目的是创建一个新的列,我把时间序列划分为: var 归类后 win_ID 以该系列的第一个元素为单位,以 win_ID诸如此类

           Date    ID  window        var  win_ID  new_var
0    1998-01-28     X      -5  8.500e-03       1       1
1    1998-01-28     Y      -5  1.518e-02       1 1.78588
2    1998-01-29     X      -4  8.005e-03       1 0.94176
3    1998-01-29     Y      -4  7.905e-03       1 0.93000
4    1998-01-30     X      -3 -5.497e-03       1 ...
         ...   ...     ...        ...
3339 2016-12-19     Y       3 -4.365e-04     152
3340 2016-12-20     X       4  3.628e-03     152
3341 2016-12-20     Y       4  6.608e-03     152
3342 2016-12-21     X       5 -2.467e-03     152
3343 2016-12-21     Y       5 -2.651e-03     152

在这里我给出了一些初步的例子,说明我在变量 new_var. 我想用类似

df['new_var']=df.groupby('win_ID')/df.groupby('win_ID').first()

但我得到的错误信息是

ValueError: Unable to coerce to Series, length must be 4: given 152

有人有其他的解决方案吗?

python pandas dataframe group-by pandas-groupby
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.