【问题标题】:Converting a table of fixed width in text format into dataframe/excel/csv将文本格式的固定宽度表格转换为dataframe/excel/csv
【发布时间】:2020-02-07 14:57:55
【问题描述】:

我有一些 txt 格式的 data,有 38 列,如下所示:

除标题行外,大多数行都有缺失值。我想将此表转换为数组/数据框/excel。但它并没有像它在表格中看到的那样出现。

我尝试使用 python

df = pandas.read_csv(filename, sep='\s+',names=colnames, header=None)

我对使用什么分隔符感到困惑。

程序应该在单个空格之后寻找值。如果不存在值,则用 nan 填充它。如何做到这一点?
提前致谢!

【问题讨论】:

  • 使用pd.read_csv(filename, sep='\s+') 在我的电脑上运行良好。你用的是哪个版本的熊猫?我正在使用0.24.2
  • @tdpr 我正在使用熊猫 0.25.1 。对我来说,上面的命令执行时没有给出任何错误,但是 R/F col 值进入 AW,RA col 值进入 R/F 等等,因为sep='\s+' 正在寻找一个或多个空格。

标签: python excel pandas dataframe text-database


【解决方案1】:

你可以使用pandas.read_fwf(定宽格式):

>>> df = pd.read_fwf('data.txt')
>>> df
    INDEX  YEAR  MN  DT   MAX   MIN  ...  T.2  G.2  DUR.2  T.3  G.3  DUR.3
0   14210  1972   9   1  32.0  22.0  ...  NaN  NaN    NaN  NaN  NaN    NaN
1   14210  1972   9   2  32.3  21.5  ...  NaN  NaN    NaN  NaN  NaN    NaN
2   14210  1972   9   3  32.8  22.4  ...  NaN  NaN    NaN  NaN  NaN    NaN
3   14210  1972   9   4  32.0  22.0  ...  NaN  NaN    NaN  NaN  NaN    NaN
4   14210  1972   9   5  33.2  23.6  ...  0.0  7.0  280.0  NaN  NaN    NaN
5   14210  1972   9   6  31.6  23.2  ...  5.0  8.0   45.0  0.0  8.0    NaN
6   14210  1972   9   7  31.5  21.0  ...  5.0  4.0   45.0  NaN  NaN    NaN
7   14210  1972   9   8  29.7  21.6  ...  NaN  NaN    NaN  NaN  NaN    NaN
8   14210  1972   9   9  29.7  21.1  ...  NaN  NaN    NaN  NaN  NaN    NaN
9   14210  1972   9  10  27.6  21.5  ...  NaN  NaN    NaN  NaN  NaN    NaN
10  14210  1972   9  11  30.3  21.3  ...  6.0  1.0   80.0  NaN  NaN    NaN
11  14210  1972   9  12  30.6  22.0  ...  5.0  5.0   30.0  NaN  NaN    NaN
12  14210  1972   9  13  30.2  21.4  ...  0.0  7.0  195.0  NaN  NaN    NaN
13  14210  1972   9  14  28.2  21.5  ...  NaN  NaN    NaN  NaN  NaN    NaN
14  14210  1972   9  15  30.3  21.9  ...  0.0  7.0  305.0  NaN  NaN    NaN
15  14210  1972   9  17  32.0  22.0  ...  6.0  7.0  135.0  NaN  NaN    NaN
16  14210  1972   9  18  32.0  20.5  ...  6.0  6.0   80.0  5.0  NaN    NaN

[17 rows x 38 columns]

【讨论】:

    猜你喜欢
    • 2018-01-17
    • 2015-04-18
    • 1970-01-01
    • 2020-03-19
    • 2019-05-08
    • 2018-01-31
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    相关资源
    最近更新 更多