gpt4 book ai didi

python - 如何逐行计算两列 Pandas 中的 pct_change()?

转载 作者:太空宇宙 更新时间:2023-11-04 00:16:21 25 4
gpt4 key购买 nike

我有这个:

df['new'] = df[['col1', 'col2']].pct_change(axis=1)

我想要 col1 和 col2 中各行的百分比变化。但是我收到错误:

ValueError: Wrong number of items passed 2, placement implies 1

我做错了什么?

最佳答案

百分比变化函数返回一个包含两列的 pandas DataFrame 对象!这就是您看到 ValueError 的原因,其中需要 1 个项目而不是两个。

import numpy as np
x = np.range(1,11)
y = x*3
df = pd.DataFrame()
df['col1'] = x
df['col2'] = y
df
col1 col2
0 1 3
1 2 6
2 3 9
3 4 12
4 5 15
5 6 18
6 7 21
7 8 24
8 9 27
9 10 30

df.pct_change(axis=1)
col1 col2
0 NaN 2.0
1 NaN 2.0
2 NaN 2.0
3 NaN 2.0
4 NaN 2.0
5 NaN 2.0
6 NaN 2.0
7 NaN 2.0
8 NaN 2.0
9 NaN 2.0

您想要的跨行百分比变化存储在最后一列(在本例中为“col2”),因此只需选择最后一列来填充"new"列。在本例中,我们为每一行计算 200% 的变化。

df['new'] = df.pct_change(axis=1)['col2']
col1 col2 new
0 1 3 2.0
1 2 6 2.0
2 3 9 2.0
3 4 12 2.0
4 5 15 2.0
5 6 18 2.0
6 7 21 2.0
7 8 24 2.0
8 9 27 2.0
9 10 30 2.0

关于python - 如何逐行计算两列 Pandas 中的 pct_change()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50844366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com