我有一些txt 格式的数据,有 38 列,如下所示:
除标题行外,大多数行都有缺失值。我想将此表转换为数组/数据框/excel。但它并没有像它在表格中看到的那样出现。
我尝试使用 python
df = pandas.read_csv(filename, sep='\s+',names=colnames, header=None)
我对使用什么分隔符感到困惑。
程序应该在单个空格之后寻找值。如果不存在值,则用 nan 填充它。怎么做?
提前致谢!
You can use pandas.read_fwf
(fixed-width format):
>>> 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]