gpt4 book ai didi

具有先前值的 Python Pandas iterrows()

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

我有一个 pandas Dataframe 的形式:

            A           B       K      S
2012-03-31 NaN NaN NaN 10
2012-04-30 62.74449 15.2 71.64 0
2012-05-31 2029.487 168.8 71.64 0
2012-06-30 170.7191 30.4 71.64 0

我尝试创建一个使用 df['S'][index-1] 值替换 df['S'] 的函数。

例如:

for index,row in df.iterrows:
if index = 1:
pass
else:
df['S'] = min(df['A'] + df['S'][index-1]?? - df['B'], df['K'])

但我不知道如何获取 df['S'][index - 1]

最佳答案

看起来您的初始答案非常接近。

以下应该有效:

for index, row in df.iterrows():
if df.loc[index, 'S'] != 0:
df.loc[index, 'S'] = df.loc[str(int(index) - 1), 'S']

基本上,对于除第一个索引之外的所有索引,即 0,将“S”列中的值更改为其前一行中的值。注意:这假设数据框具有顺序的、有序的索引。

iterrows() 方法不允许您通过自行调用行来修改值,因此您需要使用 df.loc() 来识别数据框中的单元格,然后更改它的值。

还值得注意的是 index 不是整数,因此使用 int() 函数减去 1。这都在 str 中() 函数,以便最终的索引输出是一个字符串,正如预期的那样。

关于具有先前值的 Python Pandas iterrows(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25473153/

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