我有一個函式可以更新我傳入的資料框:
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
這是一個更大專案的一部分,我將不斷地寫入資料幀,然后最終將資料幀寫入檔案。我會定期更新資料框的最后一行,這是我想弄清楚如何適當更新它的地方。我想避免復制資料框,而只使用我在整個代碼中更新的資料框。
uj5u.com熱心網友回復:
如果您只想連接列中的最后兩個值lib,并將最后一行的lib列重新分配給該值:
df.loc[df.index[-1], "lib"] = df[-2:]["lib"].sum()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/473595.html
標籤:python-3.x 熊猫 数据框
上一篇:誰能解釋這段代碼背后的邏輯
