簡體   English   中英

如何使用python(pandas)更新csv文件中所有行的最后一列值

[英]How to update the last column value in all the rows in csv file using python(pandas)

我正在嘗試使用 Pandas 更新 csv 文件中所有行的最后一列值。 但是在更新值時,其他列值正在下降。

file = r'Test.csv'
# Read the file
df = pd.read_csv(file, error_bad_lines=False)
# df.at[3, "ingestion"] = '20'
df.set_value(1, "ingestion", '30')
df.to_csv("Test.csv", index=False, sep='|')

使用DataFrame.iloc-1來選擇最后一列,使用:來選擇所有行:

df = pd.DataFrame({'A':list('abcdef'),
                   'B':[4,5,4,5,5,4],
                   'C':[7,8,9,4,2,3],
                   'D':[1,3,5,7,1,0],
                   'E':[5,3,6,9,2,4],
                   'F':list('aaabbb')})

print (df)
   A  B  C  D  E  F
0  a  4  7  1  5  a
1  b  5  8  3  3  a
2  c  4  9  5  6  a
3  d  5  4  7  9  b
4  e  5  2  1  2  b
5  f  4  3  0  4  b

df.iloc[:, -1] = '20'
print (df)
   A  B  C  D  E   F
0  a  4  7  1  5  20
1  b  5  8  3  3  20
2  c  4  9  5  6  20
3  d  5  4  7  9  20
4  e  5  2  1  2  20
5  f  4  3  0  4  20

編輯:

要通過最后一個編輯值交換-1更新所有行:並通過DataFrame.iat獲取最后一列值:

df.iloc[-1, :] = df.iat[-1, -1]
print (df)
   A  B  C  D  E  F
0  a  4  7  1  5  a
1  b  5  8  3  3  a
2  c  4  9  5  6  a
3  d  5  4  7  9  b
4  e  5  2  1  2  b
5  b  b  b  b  b  b

pd.DataFrame.set_value不適用於設置列中的所有值。 根據文檔,它用於在特定的行和列標簽組合處設置標量。

此外,由於v0.21,它已被棄用,取而代之的.at / .iat存取。

相反,您可以通過提取最終列標簽直接設置值,假設您沒有重復的列名:

df[df.columns[-1]] = '20'

或者,更直接地,您可以使用iloc訪問器:

df.iloc[:, -1] = '20'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM