Python 熊猫直方图

Python 熊猫直方图,python,pandas,dataframe,Python,Pandas,Dataframe,我有20世纪90年代到2017年的排放数据,希望在分离训练集和测试集后绘制直方图 问题是(我认为)年份列是一种对象数据类型(该列的条目如下所示:1995JJ00),我想将其切换为int数据类型,这样我就可以用matplotlib绘制直方图 我之所以希望在绘图上看到年份数据,是为了确保拆分数据时包含合理的年份分布,并且不会意外地包含许多类似年份的结果。也许这甚至不是最好的决定方式,但是我正陷在这个兔子洞里,希望看到它过去 首先,我通过以下方式删除了结尾处不需要的字母和数字: trainsetcop

我有20世纪90年代到2017年的排放数据,希望在分离训练集和测试集后绘制直方图

问题是(我认为)年份列是一种对象数据类型(该列的条目如下所示:
1995JJ00
),我想将其切换为
int
数据类型,这样我就可以用matplotlib绘制直方图

我之所以希望在绘图上看到年份数据,是为了确保拆分数据时包含合理的年份分布,并且不会意外地包含许多类似年份的结果。也许这甚至不是最好的决定方式,但是我正陷在这个兔子洞里,希望看到它过去

首先,我通过以下方式删除了结尾处不需要的字母和数字:

trainsetcopy['Perioden'] = trainsetcopy['Perioden'].map(lambda x: str(x)[:-4])
数据来自荷兰,因此“周期”为年。现在我想更改列的数据类型,使其能够在直方图上打印。为此,我尝试:

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

这并没有改变数据类型。如何修复此问题?

我认为您只需要将这些数据类型更改的输出分配回数据帧:

trainsetcopy['Perioden'] = trainsetcopy['Perioden'].astype(str).astype(np.int64)

没有“机器学习直方图”这样的东西,你的问题实际上与机器学习无关(编辑的标签和标题)。如果你调用
.astype(str).astype(np.int64)
,第一个是多余的。您的数据是什么样子的-您确定它可以全部转换为
int