无法在 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())
我有一个数据框
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())