[英]How to append/update new values to the rows of a existing csv file from a new csv file as a new column in python using pandas or something else
[英]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.