首页 > 解决方案 > 读取行之间没有分隔符的文件

问题描述

我有一个非常明显的问题,但我找不到熊猫解决方案(我找到了这个,很接近)。

我的文本文件没有行分隔符。因此,pandas 将文件读取为具有单行和大量列的数据框。它看起来如下:

header_1, header_2, header_3, 1, jan, 600, 2, feb, 900, 3, jan, 678

我想每行读取三个元素。最终结果应如下所示:

header_1  header_2  header_3
       1       jan       600
       2       feb       900
       3       jan       678

如何告诉文件每隔三个逗号读取一个换行符?

标签: pythonpandasdelimiter

解决方案


假设前几个条目是列名。您可以查看split文本,找到标题的数量,然后对其余数据进行分区以匹配标题的数量:

data = """header_1, header_2, header_3, 1, jan, 600, 2, feb, 900, 3, jan, 678"""

header = [head.strip() for head in data.split(',') if head.strip().startswith('header')]
rest = [head.strip() for head in data.split(',') if not head.strip().startswith('header')]
length = len(header)
rest = [rest[n:n+length] for n in range(0, len(rest), length)]
pd.DataFrame(rest, columns = header)



 header_1   header_2    header_3
0   1         jan         600
1   2         feb         900
2   3         jan         678

推荐阅读