gpt4 book ai didi

python - 从 pandas 数据框列值的两侧添加 n 个值

转载 作者:行者123 更新时间:2023-12-02 02:36:04 25 4
gpt4 key购买 nike

我有一个像这样的数据框,

df
col1 col2
A 1
B 3
C 2
D 5
E 6
F 8
G 10

我想添加 col2 特定值的前一个和后一个 n 值并将其存储到新列中,

所以,如果 n=2,那么数据框应该看起来像,

 col1    col2    col3
A 1 6 (only below 2 values are there no upper values, so adding 3 numbers)
B 3 11 (adding one prev, current and next two)
C 2 17(adding all 4 values)
D 5 24(same as above)
E 6 31(same as above)
F 8 29(adding two prev and next one as only one is present)
G 10 24(adding with only prev two values)

当找不到前一个或后两个值时,添加任何可用的值。我可以使用 for 循环来完成它,但是执行时间会很长,寻找一些 pandas 快捷方式确实可以最有效地完成它。

最佳答案

您可以使用滚动方法。

import pandas as pd
df = pd.read_json('{"col1":{"0":"A","1":"B","2":"C","3":"D","4":"E","5":"F","6":"G"},"col2":{"0":1,"1":3,"2":2,"3":5,"4":6,"5":8,"6":10}}')

df['col3'] = df['col2'].rolling(5, center=True, min_periods=0).sum()
col1    col2    col3
0 A 1 6.0
1 B 3 11.0
2 C 2 17.0
3 D 5 24.0
4 E 6 31.0
5 F 8 29.0
6 G 10 24.0

关于python - 从 pandas 数据框列值的两侧添加 n 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64297560/

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