只是上下文:我有两个CSV文件:
我将称为声明
的第一个第二个是大文件
大文件包含很多数据,包括声明中的Order ID
个数字。
我想做的是:
如果声明中的Order ID
与大文件中的Order ID
相匹配,则写入大文件在Paid
列中包含Order ID
的行中, "Yes"
。
所以我写的是:
import pandas as pd
data1 = pd.read_csv('Big_File.csv')
data2 = pd.read_csv('Statement.csv')
df = pd.DataFrame(data1)
for i in range(len(data1['PO'])):
for j in range(len(data2['PO'])):
if data2['PO'][j] == data1['PO'][i]:
data1['Supplier'][i] = 'SUP'
data1['Paid'][i] = 'yes'
运行代码时,没有错误,但是我打开了大文件,以检查它是否有效并且没有任何更改。
我刚开始使用Python编写和读取文件,有人可以给我一些建议吗?
谢谢。
答案 0 :(得分:1)
您仍然需要将更改输出回CSV文件。
到目前为止,您要做的是将CSV文件中的数据读取到位于内存中的Python数据框中。然后,您将它们更换。但是后来你停了下来。在for循环之后,您应该将更改后的data1
输出回CSV。例如:
data1.to_csv('Big_File.csv')
以下是to_csv
上的文档
https://pandas.pydata.org/pandas-docs/version/0.24.2/reference/api/pandas.DataFrame.to_csv.html