我试图阅读一份人口普查报告,其中有几行如下所示。
有时,description字段太长,这会导致行中出现换行——这会使pandas陷入困境。在
533 45220 Tallahassee, FL 1613 810
999 13980 Blacksburg-Christiansburg-Radford,
VA 543 455
108 11100 Amarillo, TX 740 718
下面的代码将把文件读入pandas中,但是很多行都被移位了。如何解析这样的文件文本文件?提前致谢。在
^{pr2}$
Tags:
熊猫将无法像这样将线路拼接在一起作为
read_csv()
的一部分。我建议您先执行一次清理数据的操作(分隔符也是一个问题),然后再进行一次加载到Pandas中。在
首先,从URL获取数据(我使用
requests
,但是任何URL解析器都可以):现在迭代行,将每一行写入
^{pr2}$lines
。在以上区块注释:
\s+
分隔符将这个表读入Pandas,所以如果空格不是列分隔符的一部分,就用_
替换它们。我们要特别寻找其中两种边缘情况:Alexandria, LA
>;Alexandria,_LA
Minneapolis-St. Paul-Bloomington
>;Minneapolis-St._Paul-Bloomington
lines
的索引,它表示我们要添加到的上一行。每次我们迭代原始数据的一行而不向lines
添加新行时,循环计数器(i
)与lines
中最后一个元素的索引之间的差值将增加1。所以我们使用一个计数器(backup_by
)来计算出要附加到的lines
的正确索引。在现在将清理后的文本文件读入Pandas:
此时,如果需要,可以返回并删除插入
Name
字段中的空格的_
占位符。在相关问题 更多 >
编程相关推荐