[英]Cannot fill in blank values in Pandas
我有一个 dataframe
Gender
0 女性
1 名女性
2
3 女
4 女
使用具有一些 na 值的性别列,并且性别之间的划分为:
Male 5453
Female 4543
Name: Gender, dtype: int64
当尝试用 vale male 填充缺失值时,因为它是最常见的,使用以下代码:
data['Gender'] = data['Gender'].fillna(data['Gender'].value_counts().idxmax)
我似乎得到了相同的值:
data['Gender'].value_counts()
Male 5453
Female 4543
<bound method Series.idxmax of Male 5453\nFemale 4543\nName: Gender, dtype: int64> 4
Name: Gender, dtype: int64
似乎没有任何改变 - 就计数 go 而言,但是
data.isnull().any()
结果为假
然后当我尝试将数据类型更改为类别时:
data['Gender'] = data['Gender'].astype('category')
我收到此错误:
TypeError: 'Series' objects are mutable, thus they cannot be hashed
正如 Tserenjamts 已经说过的那样,最有可能发生这种情况是因为您要填充的值不是 NaN,而是一个空字符串。 您的代码中也存在错误,因此您的代码不会用最频繁的值填充 NaN,而是 idmax object。
试试这个来修复你的错误:
data['Gender'].replace('',np.NaN).fillna(data['Gender'].value_counts().idxmax())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.