提问人:SeanK22 提问时间:9/1/2022 更新时间:9/2/2022 访问量:166
Python Pandas:“Series”对象是可变的,因此在使用 .groupby 时无法进行哈希处理
Python Pandas: "Series" objects are mutable, thus cannot be hashed when using .groupby
问:
我想取 column['Value'] 的二阶导数并将其放入另一列中。还有另一列称为 ['Cycle'],用于将数据组织成各种循环。因此,对于每个周期,我想取这些数字集的二阶导数。
我试过使用它:
Data3['Diff2'] = Data3.groupby('Cycle#').apply(Data3['Value'] - 2*Data3['Value'].shift(1) + Data3['Value'].shift(2))
这适用于给我二阶导数(在添加 groupby 之前),但现在我收到错误: TypeError:“Series”对象是可变的,因此无法对其进行哈希处理
有人知道为什么吗?
答:
1赞
Baron Legendre
9/2/2022
#1
rng = np.random.default_rng(seed=42)
df = pd.DataFrame(
{"Cycle#": rng.integers(1,4, size=12),
"Value": rng.integers(1,11, size=12)*10
})
df
###
Cycle# Value
0 1 80
1 3 80
2 2 80
3 2 80
4 2 60
5 3 20
6 1 90
7 3 50
8 1 60
9 1 40
10 2 20
11 3 100
df['Diff2'] = df.groupby('Cycle#', as_index=False)['Value'].transform(lambda x:x - 2*x.shift(1) + x.shift(2))
df
###
Cycle# Value Diff2
0 1 80 NaN
1 3 80 NaN
2 2 80 NaN
3 2 80 NaN
4 2 60 -20.0
5 3 20 NaN
6 1 90 NaN
7 3 50 90.0
8 1 60 -40.0
9 1 40 10.0
10 2 20 -20.0
11 3 100 20.0
评论