python - 将4行数据读入一行pandas数据框

标签 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)

但这需要 (空格)作为分隔符,因为我希望它以换行符作为分隔符。

最佳答案

首先,读取数据:

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

由于您在评论中提到您有很多这样的文件,您应该简单地将所有系列存储在一个列表中,并在完成所有加载后立即构建一个包含所有这些文件的 DataFrame。

关于python - 将4行数据读入一行pandas数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55890358/

相关文章:

Python 3 - pd.to_datetime 无法识别时区

python - 如何将每列的平均值转换为行

python - Virtualenvs 中损坏的引用

python - 在 IPython Notebook 中显示决策树

java - Java中允许小数位的正则表达式包括.123和123.等

java - 拆分段落中的每个字符串

python - 在Python中读取具有不同列数的文本文件

python - pandas 列转换

python - 在 Raspberry Pi Zero 上安装 chromium 或 Firefox Webdriver 的可靠方法

python - 如何从文本中获取前 N 个句子?