优雅的方式将这些数据读入熊猫数据框?

时间:2017-04-24 21:35:07

标签: python pandas

我正在查看此处发布的文本文件,因为我无法在任何地方找到更清洁的大气二氧化碳浓度历史表:

  

https://data.giss.nasa.gov/modelforce/ghgases/Fig1A.ext.txt

我试图弄清楚如何将这个文件读入熊猫,而不必先进行笨拙的文本编辑器操作。有办法吗?

我在编辑器中执行此操作的方法是首先删除文本文件中的所有单词,然后使用read_table但我必须提供一些指令,它按顺序解释数据一年,ppm,年,ppm等我不知道如何做到这一点,也无法帮助,但想知道是否有一种聪明的方式来阅读原始文件与python自动识别冒犯单词作为单词而无视它们?

1 个答案:

答案 0 :(得分:1)

如果你使用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]