python - 在 python 中读取可变空格分隔表

标签 python csv numpy

现在我正在尝试读取一个具有可变空白定界符并且还具有缺失/空白值的表。我想用 python 读取表格并生成一个 CSV 文件。我已经尝试过 NumPy、Pandas 和 CSV 库,但不幸的是,变量空间和缺失数据一起让我几乎无法阅读表格。我正在尝试阅读的文件附在此处: goo.gl/z7S2Mo

This is how the table looks like

如果有人能帮我解决 python 中的问题,我将不胜感激

最佳答案

您的分隔符需要为两个或更多空格(而不是一个或更多空格)。这是一个解决方案:

import pandas as pd
df = pd.read_csv('infotable.txt',sep='\s{2,}',header=None,engine='python',thousands=',')

结果:

>>> print(df.head())
                                0             1          2     3      4   5  \
0  ISHARES MORNINGSTAR MID GROWTH           ETP  464288307  3892  41700  SH   
1   ISHARES S&P MIDCAP 400 GROWTH           ETP  464287606  4700  47600  SH   
2               BED BATH & BEYOND  Common Stock  075896100   870  15000  SH   
3              CARBO CERAMICS INC  Common Stock  140781105   950   7700  SH   
4    CATALYST HEALTH SOLUTIONS IN  Common Stock  14888B103  1313  25250  SH   

      6      7  8  9  
0  Sole  41700  0  0  
1  Sole  47600  0  0  
2  Sole  15000  0  0  
3  Sole   7700  0  0  
4  Sole  25250  0  0  

>>> print(df.dtypes)
0    object
1    object
2    object
3     int64
4     int64
5    object
6    object
7     int64
8     int64
9     int64
dtype: object

关于python - 在 python 中读取可变空格分隔表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43058462/

相关文章:

python - 我如何在python中获取Postgresql中的数据库列表

python - 如何在 linux 中安装 csvformat?

LINQPAD - 读入 csv 并将列存储到列表中

python - 从两个数组中获取相同数量的元素,使得所取值的重复项尽可能少

python - 将两个数组相乘得到矩阵

python - 同一图上的多个 imshow,带有不透明度 slider

python - 在 Pandas 数据框中取消嵌套记录列

Python - HTTP 多部分/表单数据 POST 请求

python - 带字典的列表 - 计算所有键的值 (Python)

c++ - 在 C++ 中处理非常大的数据