将4行数据读取到一行熊猫数据框中

时间:2019-04-28 12:42:20

标签: python regex pandas

我有具有以下值的txt文件:

108,612,620,900
168,960,680,1248
312,264,768,564
516,1332,888,1596

我需要将所有这些读取到数据帧的单行中。

    0   1   2   3   4   5   6   7    8   9   10  11  12  13   14  15
0 108 612 620 900 168 960 680 1248 312 264 768 564 516 1332 888 1596

我有很多这样的文件,因此我将继续在该数据框中追加行。

我相信我们需要某种正则表达式,但我无法弄清楚。现在这就是我所拥有的:

df = pd.read_csv(f,sep=",| ", header = None)

但这需要使用,(空格)作为分隔符,而我希望将换行符用作分隔符。

1 个答案:

答案 0 :(得分:3)

首先,读取数据:

df = pd.read_csv('test/t.txt', header=None)

它为您提供了一个形状类似于CSV的DataFrame。然后串联:

s = pd.concat((df.loc[i] for i in df.index), ignore_index=True)

它为您提供了一个系列:

0      108
1      612
2      620
3      900
4      168
5      960
6      680
7     1248
8      312
9      264
10     768
11     564
12     516
13    1332
14     888
15    1596
dtype: int64

最后,如果您真的想要一个水平DataFrame:

pd.DataFrame([s])

给你:

    0    1    2    3    4    5    6     7    8    9    10   11   12    13   14    15
0  108  612  620  900  168  960  680  1248  312  264  768  564  516  1332  888  1596

由于您在评论中提到您有许多这样的文件,因此您应该简单地将所有Seri​​es存储在列表中,并在完成所有文件的加载后立即构造一个DataFrame。

>