假设我有一个csv文件,并且我更改了一些行的颜色。现在我有一个新的csv文件,我正在从互联网上下载。它有一些新的行和一些旧的行。我想在新文件中找到唯一的数据,并将其附加到旧文件中,同时保留任何颜色更改。
我可以做其他一切,但颜色正在重置。这是我正在做的。
old_data = pd.read_csv('old_data.csv')
new_data = pd.read_csv('new_data.csv')
unique_data = new_data[~new_data['Booking Reference'].isin(old_data['Booking Reference'])]
unique_data.to_csv('old_data.csv', 'a')
这样做会重置颜色。有没有办法保留这些信息?
非常感谢您的帮助。
前面的答案涉及合并csv。然而,你的问题是关于着色信息,到目前为止,这些信息可能被忽视了,因为它毫无意义。如果你在着色上遇到问题,你需要一个不同于csv的格式。csv不包括任何格式信息:字体、颜色、列宽、行高等,这些都不是普通csv的一部分。
如果希望在Python中将新行附加到CSV文件中,可以使用以下任何方法。
将所需行的数据分配到列表中。然后,使用writer.writerow((将此列表的数据附加到CSV文件中。将所需行的数据分配到字典中。然后,使用DictWriter.writerow((.将该字典的数据附加到CSV文件中
我找到了一个适合您问题的示例。代码如下:
# Pre-requisite - Import the writer class from the csv module
from csv import writer
# The data assigned to the list
list_data=['03','Smith','Science']
# Pre-requisite - The CSV file should be manually closed before running this code.
# First, open the old CSV file in append mode, hence mentioned as 'a'
# Then, for the CSV file, create a file object
with open('CSVFILE.csv', 'a', newline='') as f_object:
# Pass the CSV file object to the writer() function
writer_object = writer(f_object)
# Result - a writer object
# Pass the data in the list as an argument into the writerow() function
writer_object.writerow(list_data)
# Close the file object
f_object.close()
在运行上述代码之前:
ID,NAME,SUBJECT
01,Henry,Python
02,Alice,C++
运行以上代码后:
ID,NAME,SUBJECT
01,Henry,Python
02,Alice,C++
03,Smith,Science
在这里你可以找到上面的例子:
- https://www.delftstack.com/howto/python/python-append-to-csv/