Python:解析末尾缺少选项卡的表
是否有一种方法可以使用pandas read table或read fwf来解析具有空字段的文本文件,如果行中没有更多字段,则制表符将停止。示例:我添加了空格以便于阅读,但它们不在选项卡之间。应该有5列A:EPython:解析末尾缺少选项卡的表,python,python-3.x,pandas,python-2.7,Python,Python 3.x,Pandas,Python 2.7,是否有一种方法可以使用pandas read table或read fwf来解析具有空字段的文本文件,如果行中没有更多字段,则制表符将停止。示例:我添加了空格以便于阅读,但它们不在选项卡之间。应该有5列A:E A \t B \t C \t D \t E \r\n word 1 \t 1 \t 2 \t text \t s \r\n \t 0 \t 20 \r\n word 2 \t 1 \t 5
A \t B \t C \t D \t E \r\n
word 1 \t 1 \t 2 \t text \t s \r\n
\t 0 \t 20 \r\n
word 2 \t 1 \t 5 \r\n
\t \t \t text2 \r\n
word 6 \t 2 \t 6 \t text3 \t s \r\n
我想要NaN值或任何表示有空字段的地方为空的内容。我到处找过类似的东西,但什么也没找到。我也尝试了所有我能想到的使用熊猫的方法。我曾考虑过向缺少4的每一行添加\t值,但我希望有一种更简单的方法,因为除了这一点之外,此数据集还有更多问题。这些数据表之间用文本分隔,因为它是转换为文本的pdf
预期结果:
A B C D E
word 1 1 2 text s
NaN 0 20 NaN NaN
word 2 1 5 NaN NaN
NaN NaN NaN text2 NaN
word 6 2 6 text3 s
使用
data = pd.read_fwf(filename, skiprows=range(0,10),skipfooter=8,sep='\t',na_values='NaN')
嗯,从示例中过滤掉空格后,它得到:
'A\tB\tC\tD\tE\r\nword 1\t1\t2\ttext\ts\r\n\t0\t20\r\nword 2\t1\t5\r\n\t\t\ttext2\r\nword 6\t2\t6\ttext3\ts\r\n'
显示为(每8个位置的选项卡转换为空格):
Pandas 0.23.4使用(na_值=“”
要求将空字段转换为NaN
):
如预期所示:
A B C D E
0 word 1 1.0 2.0 text s
1 NaN 0.0 20.0 NaN NaN
2 word 2 1.0 5.0 NaN NaN
3 NaN NaN NaN text2 NaN
4 word 6 2.0 6.0 text3 s
你试过什么?你能添加一个预期的结果吗?我试着使用read_table和read_fwf,在网上查看了很多不同的参数。似乎什么都不管用。所有内容都作为字符串放在第一列中。它不解析选项卡。我认为这是因为他们的选项卡数量不一致,所以添加delim_whitespace=True会将选项卡保留在第一列中,但不会将它们分开。
data = pandas.read_csv(file, sep='\t', na_values='')
print(data)
A B C D E
0 word 1 1.0 2.0 text s
1 NaN 0.0 20.0 NaN NaN
2 word 2 1.0 5.0 NaN NaN
3 NaN NaN NaN text2 NaN
4 word 6 2.0 6.0 text3 s