gpt4 book ai didi

python - 尝试使用 Python/pandas 根据来自另一个数据框的列的内部总和创建一个新的数据框

转载 作者:行者123 更新时间:2023-11-28 17:35:36 25 4
gpt4 key购买 nike

假设我有一个 Pandas 数据框 df 如下:

df = DataFrame({'Col1':[1,2,3,4], 'Col2':[5,6,7,8]})

Col1 Col2
0 1 5
1 2 6
2 3 7
3 4 8

有没有办法让我将一列更改为该列中以下所有元素的总和?

例如对于“Col1”,结果将是:

    Col1   Col2
0 10 5
1 9 6
2 7 7
3 4 8

1 变成 1 + 2 + 3 + 4 = 10
2 变成 2 + 3 + 4 = 9
3 变成 3 + 4 = 7
4 剩下 4

如果可能的话,我有没有办法指定一个截止索引,在该索引之后会发生这种行为?例如,如果截止索引是键 1,则结果将是:

    Col1   Col2
0 1 5
1 2 6
2 7 7
3 4 8

我认为除了使用循环之外别无他法,但我认为可能有一种使用矢量化计算的方法。

谢谢你

最佳答案

这是避免循环的一种方法。

import pandas as pd

your_df = pd.DataFrame({'Col1':[1,2,3,4], 'Col2':[5,6,7,8]})

def your_func(df, column, cutoff):
# do cumsum and flip over
x = df[column][::-1].cumsum()[::-1]
df[column][df.index > cutoff] = x[x.index > cutoff]
return df

# to use it
your_func(your_df, column='Col1', cutoff=1)

Out[68]:
Col1 Col2
0 1 5
1 2 6
2 7 7
3 4 8

关于python - 尝试使用 Python/pandas 根据来自另一个数据框的列的内部总和创建一个新的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30908789/

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