我期待在这里发表的文本文件,因为我无法找到大气二氧化碳浓度的历史更清洁的表的任何地方:将此数据读入熊猫数据框的优雅方法?
我试图找出如何将这个文件读入熊猫,而不必先执行尴尬的文本编辑器操作。有没有办法做到这一点?
我在编辑器中做的方式是首先从文本文件中删除所有的单词,然后使用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