我正在查看此处发布的文本文件,因为在任何地方都找不到一个更清晰的大气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/

10-09 07:09
查看更多