带行延续的Python read_表
熊猫是否可以读取包含行延续的文本文件 例如,假设我有一个文本文件“read_table.txt”,如下所示:带行延续的Python read_表,python,pandas,Python,Pandas,熊猫是否可以读取包含行延续的文本文件 例如,假设我有一个文本文件“read_table.txt”,如下所示: col1, col2 a, a string b, a very long \ string c, another string 如果我对文件调用read\u table,我会得到以下结果: >>> pandas.read_table('read_table.txt', delimiter=',') col1 col2 0
col1, col2
a, a string
b, a very long \
string
c, another string
如果我对文件调用read\u table
,我会得到以下结果:
>>> pandas.read_table('read_table.txt', delimiter=',')
col1 col2
0 a a string
1 b a very long \
2 string NaN
3 c another string
col1 col2
0 a a string
1 b a very long string
2 c another string
我想得到这个:
>>> pandas.read_table('read_table.txt', delimiter=',')
col1 col2
0 a a string
1 b a very long \
2 string NaN
3 c another string
col1 col2
0 a a string
1 b a very long string
2 c another string
使用escapechar:
df = pd.read_table('in.txt', delimiter=',',escapechar="\\")
这将包括DSM指出的换行符,您可以使用
df.col2=df.col2.str.replace(“\n\s*”,”)删除换行符我无法按照Padraic的建议使用escapechar
选项,可能是因为我此刻被卡在了一个窗口框上(告密\r
):
我能正常工作的是regex通行证:
import pandas as pd
import re
import StringIO # python 2 on this machine, embarrassingly
with open('read_table.txt') as f_in:
file_string = f_in.read()
subbed_str = re.sub('\\\\\n\s*', '', file_string)
df = pd.read_table(StringIO.StringIO(subbed_str), delimiter=',')
这产生了您想要的输出:
col1 col2
0 a a string
1 b a very long string
2 c another string
很酷的问题。谢谢分享 请注意,您必须添加一个清理过程,例如.str.replace(“\n\s*”,“”)
(未真正测试)来修复事件后的col2值。感谢您的回复。我不知道为什么我以前没看到!