我正在查看此处发布的文本文件,因为在任何地方都找不到一个更清晰的大气CO2浓度历史记录表:
https://data.giss.nasa.gov/modelforce/ghgases/Fig1A.ext.txt
我试图弄清楚如何将此文件读入pandas,而不必先进行笨拙的文本编辑器操作。有办法吗?
我要在编辑器中执行此操作的方法是,首先从文本文件中切出所有单词,然后使用read_table,但我必须提供一些说明,使其以年,ppm,年, ppm等。我不知道该怎么做,也不禁想知道是否存在一种聪明的方法来使用python自动识别有问题的单词并将其忽略,从而读取原始文件?
最佳答案
如果使用pandas.read_fwf
,那是相当简单的:
码:
df = pd.read_fwf(
'https://data.giss.nasa.gov/modelforce/ghgases/Fig1A.ext.txt',
header=None, skiprows=5, nrows=50,
colspecs=[( 8, 12), (14, 20), (28, 32), (34, 40),
(48, 52), (54, 60), (68, 72), (74, 80)])
years = np.concatenate([df[i].values for i in range(0, 8, 2)])
temps = np.concatenate([df[i].values for i in range(1, 8, 2)])
df = pd.DataFrame(temps, index=years, columns=['temps']).dropna()
print(df)
结果:
temps
1850.0 285.20
1851.0 285.10
1852.0 285.00
1853.0 285.00
1854.0 284.90
... ...
2007.0 383.37
2008.0 385.46
2009.0 386.95
2010.0 389.21
2011.0 391.15
[162 rows x 1 columns]
关于python - 将此数据读入pandas数据框的优雅方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43598095/