PANDAS to_csv 正在输出没有分隔符的文件

PANDAS to_csv is outputting file without delimiters

我正在使用 pycharm 中的 pandas to_csv() 函数将数据框导出到 csv 文件。但是,导出的文件不包含任何分隔符。该脚本的总体目标是读取两个 csv 文件(一个来自 2016 年,一个来自 2021 年,其中包含一些类似的信息,但 2021 年的 csv 增加了信息),使用名为 [=17 的字段搜索 csv 文件中的不同行=] 并将与新的 csv 文件不同的行写入。这将使我能够看到自 2016 年以来添加到 csv 中的内容。代码一直运行到我将数据框导出到最终 csv 的最终过程。我在记事本中检查了输出,没有出现逗号。

我已尝试指定参数以确保文件以逗号分隔,但我相信无论如何这应该是默认设置。这是我的代码:

#the csv's are large, ~1000 rows so I set the display options manually
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('display.max_colwidth', -1)

# Opens csv files as dataframes
f2016 = pd.read_csv( 'G:\Wildlife_V_ErikSimoneNico_Done.csv',)
f2021 = pd.read_csv('G:\test_v_wildlife_output.csv')

# stores files that do not match among csv in a list using the FileName field of both csvs to 
# compare csvs
diffList = [f2021[~f2021.FileName.isin(f2016.FileName)]]

#converts list to a dataframe
diffList_df = pd.DataFrame(diffList)

#converts data frame to a csv
diffList_df.to_csv('G:\v_wildlife_diff.csv', sep=',', index=False, header=True)

如果我对你的问题的理解正确,你想保存 f2021 中 FileName 值与 f2016 中不同的行。

但是我觉得你的线路有问题

diffList = [f2021[~f2021.FileName.isin(f2016.FileName)]]

在这一行中,您将一个包含新行 f2021 的数据帧存储在一个列表中,然后将其转换为一个数据帧。

相反,您应该尝试将此数据框直接导出到 .csv。

#the csv's are large, ~1000 rows so I set the display options manually
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('display.max_colwidth', -1)

# Opens csv files as dataframes
f2016 = pd.read_csv( 'G:\Wildlife_V_ErikSimoneNico_Done.csv',)
f2021 = pd.read_csv('G:\test_v_wildlife_output.csv')

# Creates a DataFrame with rows that do not match among csvs using the FileName field of both csvs to compare csvs
diffDataFrame = f2021[~f2021.FileName.isin(f2016.FileName)]

#converts data frame to a csv
diffDataFrame.to_csv('G:\v_wildlife_diff.csv', sep=',', index=False, header=True)