使用函数更新 Panda Dataframe 的值

Updating a Value of A Panda Dataframe with a Function

我有一个函数可以更新我传入的数据框:

def update_df(df, x, i):
    for i in range(x):
        list = ['name' + str(i), i + 2, i - 1]
        df.loc[i] = list

    return df, i   

df = pd.DataFrame(columns=['lib', 'qty1', 'qty2'])
i = 0
df, i = update_df(df, 6, i)

我想做的是能够在 运行 之后通过我创建的 update_df(df, x, i) 函数修改数据框,但我不太幸运。以下是我正在尝试做的事情的示例,我只是想将 lib 列中最后两行的值连接在一起:

temp = df.loc[i][0]+df.loc[i-1][0]
print(temp)
df.loc[i][0] = temp
print(df)

以下是我得到的输出:

name5name4
     lib  qty1  qty2
0  name0     2    -1
1  name1     3     0
2  name2     4     1
3  name3     5     2
4  name4     6     3
5  name5     7     4

但我希望得到的是:

name5name4
     lib  qty1  qty2
0  name0     2    -1
1  name1     3     0
2  name2     4     1
3  name3     5     2
4  name4     6     3
5  name5name4     7     4

这是一个更大项目的一部分,我将不断写入数据帧,然后最终将数据帧写入文件。我会定期更新数据框的最后一行,这是我想弄清楚如何适当更新它的地方。我想避免制作数据框的副本,而只是坚持使用我在整个代码中更新的数据框。

如果您只想连接 lib 列中的最后两个值,并将最后一行的 lib 列重新分配给该值:

df.loc[df.index[-1], "lib"] = df[-2:]["lib"].sum()