文件是类似于CSV的格式,其中按日期对行进行分组,而包含除日期以外的信息的行中将省略日期信息。可以通过在其标题行中包含“ /”字符来识别此类格式。
start_date / lat,lon,tmax
1979-01-01
27,261,10.522
27,262,11.772
28,261,9.205
1979-01-02
27,261,10.139
27,262,10.913
28,261,8.982
当前使用以下代码:
import numpy as np
import pandas as pd
pd.read_csv(fileName, delimiter = ',')
这给出了输出
start_date / lat lon tmax
0 1979-01-01 NaN NaN
1 27 261.0 10.522
2 27 262.0 11.772
3 28 261.0 9.205
4 1979-01-02 NaN NaN
5 27 261.0 10.139
6 27 262.0 10.913
7 28 261.0 8.982
所需的输出。
start_date lat lon tmax
0 1979-01-01 27 261.0 10.522
1 1979-01-01 27 262.0 11.772
2 1979-01-01 28 261.0 9.205
3 1979-01-02 27 261.0 10.139
4 1979-01-02 27 262.0 10.913
5 1979-01-02 28 261.0 8.982
如何将这样的文件读入pandas数据框并获得所需的输出?
我的感觉是,由于数据的性质,大熊猫可能没有直接的方式将数据加载到所需的结果。如果是我,这就是我将如何处理您的情况。
附带的是我根据上述逻辑编写的代码。
df = pd.read_csv('test.txt')
df['lat'] = df['start_date / lat']
df.columns = ['start_date', 'lon', 'tmax', 'lat']
df['start_date'] = pd.to_datetime(df['start_date'], errors='coerce')
df['start_date'] = df['start_date'].fillna(method='ffill')
df[df['lon'].notnull()]
我复制了您的数据,并在本地创建了test.txt以复制您的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句