实际项目中有这样的需求,将某一列的值,映射成类别型的数据,这个时候,需要我们将范围等频切分,或者等距切分。
具体的做法可以先看某一些特征的具体分布情况,然后我们选择合适的阈值进行分割。
def age_map(x):
if x < 26:
return 0
elif x >=26 and x <= 35:
return 1
elif x > 35 and x <= 45:
return 2
elif pd.isnull(x): #判断是否为NaN值,== 和in 都无法判断
return 3
else:
return 4
也就是用pandas自带的函数来表示:
pd.isnull(x)
最后我们可以应用map函数:
data['age'] = data['birth_year'].map(age_map)
统计df文件中有多少空值
df = pd.read_csv('test.csv')
df.isna().sum()