我有1990年代到2017年的排放数据,并希望在分离训练集和测试集后绘制直方图。
问题(我认为)是,年份列是对象数据类型(此列的条目如下:1995JJ00
),我想将其切换为int
数据类型,因此我可以使用matplotlib绘制直方图。
我想在地块上查看年份数据的原因是为了确保对数据进行拆分时可以合理地分散年份,并且不会意外地包含很多相似年份的结果。也许这甚至不是决定这一点的最佳方法,但是我在这个兔子洞里,希望可以看到它。
首先,我通过以下方式删除了不需要的字母和数字:
trainsetcopy['Perioden'] = trainsetcopy['Perioden'].map(lambda x: str(x)[:-4])
数据来自荷兰,因此“ Perioden”为年份。现在,我想更改列的数据类型以使其能够在直方图中进行绘制。为此,我尝试了:
trainsetcopy['Perioden'].astype(str).astype(np.int64)
最后以:
trainsetcopy.dtypes
ID int64
Bronnen object
Perioden object
CO2_1 int64
CH4_2 float64
N2O_3 float64
dtype: object
尚未更改数据类型。我该如何解决?
答案 0 :(得分:1)
我认为您只需要将这些dtype更改的输出分配回您的DataFrame:
trainsetcopy['Perioden'] = trainsetcopy['Perioden'].astype(str).astype(np.int64)