繁体   English   中英

Pandas中不能填空值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM