我试图在现有的df
中创建一个新列。新列的值是由groupby和滚动和的组合创建的。我该怎么做?你知道吗
我尝试了两种方法,都会导致NaN值或“插入列的索引与框架索引不兼容”
df=类似于:
HomeTeam FTHP
0 Bristol Rvs 0
1 Crewe 0
2 Hartlepool 3
3 Huddersfield 1
我试过:
(一)
df['new'] = df.groupby('HomeTeam')['FTHP'].rolling(4).sum()
(二)
df['new'] = df.groupby('HomeTeam').FTHP.apply(lambda x: x.rolling(4).mean())
(1)输出以下值,这些值是我想添加到新列中的值。你知道吗
HomeTeam
Brighton 12 NaN
36 NaN
49 NaN
72 2.0
99 2.0
我正在尝试将这些值添加到相应HomeTeam旁边的新列中。导致前三个的NaN(因为它是滚动的(4)),并在之后拾取值,类似于:
HomeTeam FTHP RollingMean
0 Bristol Rvs 0 NaN
1 Crewe 0 NaN
2 Hartlepool 3 NaN
3 Huddersfield 1 NaN
要确保与原始(非重复)索引对齐,请执行以下操作:
用
df
:使用} 值作为第0级,将原始索引保留在第1级:
as_index=False
分组会添加一个^{Drop level=0以确保与原始索引对齐。您的原始索引不应该重复,否则您将得到一个
ValueError
。你知道吗相关问题 更多 >
编程相关推荐