2024-04-19 00:37:46 发布
网友
我需要更改csv文件列的特定值的方法。例如,我有csv文件:
"Ip","Sites" "127.0.0.1",10 "127.0.0.2",23 "127.0.0.3",50
我需要将“127.0.0.2”的值23改为30。
我使用csv库:导入csv
感谢您的帮助,因为我是Python新手。谢谢!
你可以使用非常强大的图书馆熊猫。这是一个例子。
import pandas as pd df = pd.read_csv("test.csv") df.head(3) #prints 3 heading rows
输出:
Ip Sites 0 127.0.0.1 10 1 127.0.0.2 23 2 127.0.0.3 50
现在,如果要更改第一行“站点”列中的值,请运行:
df.set_value(1, "Sites", 30)
如果要更改所有值(其中“Ip”等于127.0.0.2),请运行:
df.loc[df["Ip"]=="127.0.0.2", "Sites"] = 30
最后,要保存值:
df.to_csv("test.csv", index=False)
不能真正替换现有文件中的值。相反,你需要:
您还可以逐行读取现有文件,将其写入新文件,同时动态替换值。完成后,关闭两个文件,删除原始文件并重命名新文件。
这是打开csv文件,更改内存中的值,然后将更改写回磁盘的解决方案。
r = csv.reader(open('/tmp/test.csv')) # Here your csv file lines = list(r)
行内容:
[['Ip', 'Sites'], ['127.0.0.1', '10'], ['127.0.0.2', '23'], ['127.0.0.3', '50']]
修改值:
lines[2][1] = '30'
[['Ip', 'Sites'], ['127.0.0.1', '10'], ['127.0.0.2', '30'], ['127.0.0.3', '50']]
现在我们只需要把它写回一个文件
writer = csv.writer(open('/tmp/output.csv', 'w')) writer.writerows(lines)
你可以使用非常强大的图书馆熊猫。这是一个例子。
输出:
现在,如果要更改第一行“站点”列中的值,请运行:
如果要更改所有值(其中“Ip”等于127.0.0.2),请运行:
最后,要保存值:
不能真正替换现有文件中的值。相反,你需要:
您还可以逐行读取现有文件,将其写入新文件,同时动态替换值。完成后,关闭两个文件,删除原始文件并重命名新文件。
这是打开csv文件,更改内存中的值,然后将更改写回磁盘的解决方案。
行内容:
修改值:
行内容:
现在我们只需要把它写回一个文件
相关问题 更多 >
编程相关推荐