我期待在這裏發表的文本文件,因爲我無法找到大氣二氧化碳濃度的歷史更清潔的表的任何地方:將此數據讀入熊貓數據框的優雅方法?
我試圖找出如何將這個文件讀入熊貓,而不必先執行尷尬的文本編輯器操作。有沒有辦法做到這一點?
我在編輯器中做的方式是首先從文本文件中刪除所有的單詞,然後使用read_table,但是我必須提供一些指令來解釋數據的年份, ppm,year,ppm等。我不知道該怎麼做,也不禁想知道是否有一種聰明的方式來用python自動識別冒犯的單詞並忽略它們?
我期待在這裏發表的文本文件,因爲我無法找到大氣二氧化碳濃度的歷史更清潔的表的任何地方:將此數據讀入熊貓數據框的優雅方法?
我試圖找出如何將這個文件讀入熊貓,而不必先執行尷尬的文本編輯器操作。有沒有辦法做到這一點?
我在編輯器中做的方式是首先從文本文件中刪除所有的單詞,然後使用read_table,但是我必須提供一些指令來解釋數據的年份, ppm,year,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]
最優雅是見仁見智。 IMO最優雅的方式是創建一個新的文本文件。 – piRSquared
請問你用什麼編輯器來包裝重複的(年,ppm)組的列?謝謝! – theverge