這是一個基本問題,但我想遍歷數據幀列表並針對每個數據幀,將索引設置爲數據幀中的一列。下面的代碼的問題是它不保存帶有新索引的數據幀。如何格式化此For循環,以便在for循環之外永久更改數據框?謝謝。熊貓循環播放數據幀和變化索引列表
dflist = [df_1, df_2, df_3]
for i in dflist:
i = i.set_index('column_2')
這是一個基本問題,但我想遍歷數據幀列表並針對每個數據幀,將索引設置爲數據幀中的一列。下面的代碼的問題是它不保存帶有新索引的數據幀。如何格式化此For循環,以便在for循環之外永久更改數據框?謝謝。熊貓循環播放數據幀和變化索引列表
dflist = [df_1, df_2, df_3]
for i in dflist:
i = i.set_index('column_2')
for i in dflist:
i.set_index('column_2', inplace=True)
與嘗試到位選項: i = i.set_index('column_2', inplace=True)
正如你可能已經猜到了,我只是一個臨時值。使用i作爲僅使用枚舉的索引
for i, df in enumerate(dflist):
dflist[i] = dflist[i].set_index('column_2'))
是的!偉大的迴應。感謝您的輸入。這更有意義。 –
這樣做的唯一原因是,如果您創建一個帶有數據框的新列表,因爲運行時將不得不創建一個數據框並將其複製到列表中,並且無論如何都要將gc中的舊項目複製到該列表中。那麼最好使用inplace,但應該謹慎使用,因爲不可變的語義更容易推理。 –
是的。我會讓雙方去看看對我來說什麼更好。謝謝。 –
在循環中分配df只會給您一個不必要的副本,該副本在循環範圍結束時立即gc:ed。 –