python - 将文本格式的固定宽度表格转换为dataframe/excel/csv

标签 python excel pandas dataframe text-database

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

screenshot

除了标题行之外,大多数行都有缺失值。我想将此表转换为数组/数据框/Excel。但它并没有像表中所示那样出现。

我尝试使用 python

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

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

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

最佳答案

您可以使用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]

关于python - 将文本格式的固定宽度表格转换为dataframe/excel/csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60115895/

相关文章:

python - 为 PyPy 的 JIT 编写快速代码的指南

python - 检查值是否包含在张量中

xml - 导出到 XML 的基本标准?

arrays - 将数组的结果写入下一个可用单元格

python - [tensorflow]安装 tensorflow-gpu,导入错误为段错误(核心转储)

python - 编程新手,需要有关 python 中 if - elif 输入的帮助

database - 将 excel 电子表格转换为可查询数据库的最佳/最简单方法

python - 在数据框中另一列的末尾添加现有列

python - 为什么在Python Pandas中, float 条件可以删除数据框中的对象?

python - Pandas pivot_table,按列对值进行排序