我有具有以下值的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)
但这需要使用,
和(空格)作为分隔符,而我希望将换行符用作分隔符。
答案 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
由于您在评论中提到您有许多这样的文件,因此您应该简单地将所有Series存储在列表中,并在完成所有文件的加载后立即构造一个DataFrame。
>