将 pandas 数据帧导出到 csv 会导致随机换行
Exporting pandas dataframe to csv causes random line breaks
我正在尝试从维基百科中抓取一些名人的数据。我在获取数据时没有遇到任何问题,但是当我尝试将其导出到 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 的方法。 None 这些方法奏效了。我是 python 的新手,所以它很可能是一个非常明显的解决方案。非常感谢任何帮助!
维基百科内容中有换行符,很难以 CSV 等面向行的格式可靠地表示。
您可以使用 Excel 的打开对话框(不仅仅是双击文件)和 select“文本文件”作为格式,它允许您选择如何解释各种分隔符和带引号的字符串...但最好 完全不要使用 CSV 进行数据交换。
- 如果您需要使用 Excel,请在 Pandas 中使用
.to_excel()
。
- 如果您只需要使用 Pandas,请使用例如
.to_pickle()
.
- 如果您需要与其他软件的互操作性,
.to_json()
将是一个不错的选择。
我正在尝试从维基百科中抓取一些名人的数据。我在获取数据时没有遇到任何问题,但是当我尝试将其导出到 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 的方法。 None 这些方法奏效了。我是 python 的新手,所以它很可能是一个非常明显的解决方案。非常感谢任何帮助!
维基百科内容中有换行符,很难以 CSV 等面向行的格式可靠地表示。
您可以使用 Excel 的打开对话框(不仅仅是双击文件)和 select“文本文件”作为格式,它允许您选择如何解释各种分隔符和带引号的字符串...但最好 完全不要使用 CSV 进行数据交换。
- 如果您需要使用 Excel,请在 Pandas 中使用
.to_excel()
。 - 如果您只需要使用 Pandas,请使用例如
.to_pickle()
. - 如果您需要与其他软件的互操作性,
.to_json()
将是一个不错的选择。