使用函数更新 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()
我有一个函数可以更新我传入的数据框:
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()