Python 装箱后为空值
使用pd()将连续变量转换为分类变量时,空值出现在“年龄”列中,该列从没有任何空值的“年龄”中转换而来。这里的解决方案是什么Python 装箱后为空值,python,pandas,dataframe,data-science,Python,Pandas,Dataframe,Data Science,使用pd()将连续变量转换为分类变量时,空值出现在“年龄”列中,该列从没有任何空值的“年龄”中转换而来。这里的解决方案是什么 df['age_in_years']=df['age_in_days']/365 df.drop('age_in_days',inplace=True,axis=1) bins=[0,35,60,100] group=['young','middle_aged','senior'] df['age']=pd.cut(df['age_in_years'],bins,labe
df['age_in_years']=df['age_in_days']/365
df.drop('age_in_days',inplace=True,axis=1)
bins=[0,35,60,100]
group=['young','middle_aged','senior']
df['age']=pd.cut(df['age_in_years'],bins,labels=group,right=True).astype('object')
现在,当我运行df.isnull().sum()
时,年龄列显示空值
数据集:您可以尝试:
bins=[-np.inf,0,35,60,100,np.inf]
df['age']=pd.cut(df['age_in_years'],bins,labels=group,right=True).astype('object')
这将诊断问题,还包括低于0(-inf,0.0]
和高于100[100.0,inf)
的值。您可以尝试:
bins=[-np.inf,0,35,60,100,np.inf]
df['age']=pd.cut(df['age_in_years'],bins,labels=group,right=True).astype('object')
这将诊断问题,还包括低于0
(-inf,0.0]
和高于100[100.0,inf)的值
发生错误的原因是,您的五行的age\u in\u years
大于100,并且由于您确定最后一个bin结束于100,因此在构建age
时,这五行将获得空值
您可以使用float('inf')
作为最后一个箱子的上限来调整代码:
bins = [0, 35, 60, float('inf')]
group = ['young', 'middle_aged', 'senior']
df['age'] = pd.cut(df['age_in_years'], bins, labels=group, right=False).astype('object')
发生错误的原因是,您的五行中的
age\u in\u years
大于100,并且由于您确定最后一个bin结束于100,因此在构造age
时,这五行将获得空值
您可以使用float('inf')
作为最后一个箱子的上限来调整代码:
bins = [0, 35, 60, float('inf')]
group = ['young', 'middle_aged', 'senior']
df['age'] = pd.cut(df['age_in_years'], bins, labels=group, right=False).astype('object')
您能否提供数据帧
df
的样本,以便重现问题?尤其是出现问题的行,这可能是由于它们的age in_years
超出了[0,100]范围,因为一些年龄超出了范围(0100)您能否提供数据帧df
的样本,以便重现问题?尤其是出现问题的行,这可能是由于它们的age in_years
超出了[0,100]范围,因为一些年龄超出了范围(0100)