python - 使用 Pandas 读取空格分隔的数据

标签 python pandas

<分区>

我曾经使用 numpy.loadtxt() 读取数据。然而,最近我在 SO 中发现, pandas.read_csv() 快得多。

要读取这些数据,我使用:

pd.read_csv(filename, sep=' ',header=None)

我现在遇到的问题是,在我的例子中,分隔符可以不同于一个空格,x 个空格甚至一个制表符。

这里是我的数据的样子:

56.00     101.85 52.40 101.85 56.000000 101.850000 1
56.00 100.74 50.60 100.74 56.000000 100.740000 2
56.00 100.74 52.10 100.74 56.000000 100.740000 3
56.00 102.96 52.40 102.96 56.000000 102.960000 4
56.00 100.74 55.40 100.74 56.000000 100.740000 5

这会导致如下结果:

     0       1     2       3     4       5   6       7   8
0   56     NaN   NaN  101.85  52.4  101.85  56  101.85   1
1   56  100.74  50.6  100.74  56.0  100.74   2     NaN NaN
2   56  100.74  52.1  100.74  56.0  100.74   3     NaN NaN
3   56  102.96  52.4  102.96  56.0  102.96   4     NaN NaN
4   56  100.74  55.4  100.74  56.0  100.74   5     NaN NaN

我必须指定我的数据 >100 MB。所以我不能预处理数据或先清理它们。 任何想法如何解决这个问题?

最佳答案

您的原始行:

pd.read_csv(filename, sep=' ',header=None)

将分隔符指定为单个空格,因为您的 csvs 可以包含空格或制表符,您可以将正则表达式传递给 sep 参数,如下所示:

pd.read_csv(filename, sep='\s+',header=None)

这将分隔符定义为一个或多个空格,有一个方便的备忘单列出了 regular expressions.

关于python - 使用 Pandas 读取空格分隔的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22809061/

相关文章:

python - 重复 Pandas 数据框行标签

python - 多种型号的表格

python - 如何使用 numpy 保存和读回多维字符串数组(可能)?

python - NLTK 使用的实际例子

Python时间戳不打印-打开大文本

python - 如何在 Dataframe 列中找到第一个和最后一个元素并修剪这些元素之间的值

Python Pandas 遍历行并访问列名

Python,为什么我的 for 循环创建了两个 docx 文件,而它应该创建一个文件?

python - 在 python 中用字典翻译数据框

python - Pandas 在组内移动组子集的值