【问题标题】:Exporting pandas dataframe to csv causes random line breaks将 pandas 数据帧导出到 csv 会导致随机换行
【发布时间】:2021-01-11 11:20:31
【问题描述】:

我正在尝试从维基百科中搜索一些名人的数据。我在获取数据方面没有问题,但是当我尝试将其导出到 csv 时,总是有一些条目会导致重大问题。基本上,对于大多数条目,输出 csv 的格式都很好,除了一些会导致我似乎无法克服的随机换行符。这是示例数据和代码:

# 1. pull out wiki pages
sample_names_list = [{'name': 'Mikhail Fridman', 'index': 11.0}, #will work fine
                     {'name': 'Roman Abramovich', 'index': 12.0}, #will cause issue
                     {'name': 'Marit Rausing', 'index': 13.0}] #has no wiki page, hence 'try' in loops below

# 1.1 get page title for each name in list
import wikipedia as wk

for person in sample_names_list:
    try:
        wiki_page = person['name']
        person['wiki_page'] = wk.page(title = wiki_page, auto_suggest = True)
    except: pass

# 1.2 get page content for each page title in list
for person in sample_names_list:
    try:
        person_page = person['wiki_page']
        person['wiki_text'] = person_page.content
    except: pass

# 2. convert to dataframe
import pandas as pd
sample_names_data = pd.DataFrame(sample_names_list)
sample_names_data.drop('wiki_page', axis = 1, inplace= True) #drop unnecessary col

# 3. export csv
sample_names_data.to_csv('sample_names_data.csv')

这是输出的屏幕截图,如您所见,其中一个条目中插入了随机换行符并分散在各处,没有明显的模式:

我试过摆弄sample_names_list 中的数据类型,我试过弄乱to_csv 的参数,我试过其他方法来导出csv。这些方法都不起作用。我是 python 新手,所以它很可能是一个非常明显的解决方案。非常感谢任何帮助!

【问题讨论】:

  • 可能您使用; 作为 csv 分隔符,而 wiki 文本也有 ;

标签: python pandas csv export-to-csv


【解决方案1】:

维基百科内容中有换行符,很难以 CSV 等面向行的格式可靠地表示。

您可以使用 Excel 的“打开”对话框(不仅仅是双击文件)并选择“文本文件”作为格式,这样您就可以选择如何解释各种分隔符和带引号的字符串...但最好只是 don '根本不使用 CSV 进行数据交换。

  • 如果您需要使用 Excel,请在 Pandas 中使用 .to_excel()
  • 如果您只需要使用 Pandas,请使用例如.to_pickle()
  • 如果您需要与其他软件的互操作性,.to_json() 将是一个不错的选择。

【讨论】:

  • 我还以为是换行问题,但换行并没有发生中断,并且在输出的其余部分中成功合并了大量换行。
  • 我想将其导出以在 R 中进行分析(我更熟悉),因此理想情况下希望它为 csv。
  • 在这种情况下我建议使用 JSON,例如stackoverflow.com/questions/2617600/…
猜你喜欢
  • 1970-01-01
  • 2019-01-20
  • 2017-04-14
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2017-04-15
  • 1970-01-01
相关资源
最近更新 更多