无法在 Pandas 中填写空白值

Cannot fill in blank values in Pandas

我有一个数据框

Gender

0 位女性
1 女
2
3 女
4 女

性别列有一些 na 值,性别之间的划分是:

Male      5453
Female    4543
Name: Gender, dtype: int64

当试图用男性男性填充缺失值时,因为它是最常见的,使用此代码:

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

似乎没有做出任何改变 - 就目前而言,但是

data.isnull().any()

结果为假

然后当我尝试将数据类型更改为类别时:

data['Gender'] = data['Gender'].astype('category')

我收到这个错误:

TypeError: 'Series' objects are mutable, thus they cannot be hashed

正如 Tserenjamts 所说,发生这种情况很可能是因为您要填充的值不是 NaN,而是空字符串。您的代码中也存在错误,因此您的代码不会使用最频繁的值填充 NaN,而是使用 idmax 对象。

试试这个来修复你的错误:

data['Gender'].replace('',np.NaN).fillna(data['Gender'].value_counts().idxmax())