首页 > 解决方案 > Pandas 数据框到 csv 行搞砸了

问题描述

我有一个熊猫数据框,我正在尝试将其导出到 CSV 文件。

但是,输出文件会弄乱行而不是创建干净的文件。

到目前为止,我已经尝试使用不同的分隔符,例如“/t”,并将“全文”下的值转换为列表,希望它能防止所有这些混乱。

我的代码是:

    def __toCSV(dataframe, name):
    name = name.replace(' ', '_')
    name = name + '.csv'
    try:
        return dataframe.to_csv(name,encoding='utf-8', index=False)
    except Exception as e:
        print('The object can\'t be converted into a csv file.\n'+e)
    finally:
        if os.path.exists(name):
            print('\033[1m'+ '{}  is succesfully created.'.format(name)+'\033[1m' )

dataframe 是一个 pandas df,它有三列,“name”、“url”和“fulltext”。name 是一个字符串,它是要保存的文件的名称。

这是与行混在一起的 CSV 输出” csv导出搞砸了

这是所需的输出,很干净: 期望的输出

当它在 pandas 数据框中时,所有行似乎都是按顺序排列的。此外,当我将其导出为 JSON 时,它也不会弄乱行。

当我尝试将其导出为 CSV 时,只会出现我遇到的问题。

这就是数据在 pandas 数据框中的样子 它在 pd 中的外观

我在这里做错了什么?任何帮助,将不胜感激。

标签: pythonpandascsv

解决方案


"也许您的电子表格软件(例如 Excel)被 '单元格条目弄糊涂了。如果你用文本编辑器打开它,文本看起来不错吗?您可以从每个单元格条目中删除您正在使用的文本限定符。例如,如果您想打开 csv"作为您的文本限定符。

"在保存 df 之前从每个单元格条目中删除:

for index in df.index:
    for column in df.columns:
        cell_entry = df.loc[index, column]
        df.loc[index, column] = cell_entry.replace('"', ' ')

推荐阅读