gpt4 book ai didi

python - pandas:数字列用均值填充,字符列用模式填充

转载 作者:行者123 更新时间:2023-11-30 22:03:12 26 4
gpt4 key购买 nike

我知道如何选择所有数字列并用平均值填充,但是如何使数字列用平均值填充和字符列用模式填充?

最佳答案

使用select_dtypes对于带有 meannumeric 列,然后使用 difference 获取非数字和 mode ,通过 append 一起加入最后一次通话fillna :

注意:(感谢@jpp)

函数 mode应该返回多个值,首先添加 iloc

df = pd.DataFrame({
'A':list('ebcded'),
'B':[np.nan,np.nan,4,5,5,4],
'C':[7,np.nan,9,4,2,3],
'D':[1,3,5,np.nan,1,0],
'F':list('aaabbb')
})

df.loc[[0,1], 'F'] = np.nan
df.loc[[2,1], 'A'] = np.nan
print (df)
A B C D F
0 e NaN 7.0 1.0 NaN
1 NaN NaN NaN 3.0 NaN
2 NaN 4.0 9.0 5.0 a
3 d 5.0 4.0 NaN b
4 e 5.0 2.0 1.0 b
5 d 4.0 3.0 0.0 b
<小时/>
a = df.select_dtypes(np.number).mean()
b = df[df.columns.difference(a.index)].mode().iloc[0]
#alternative
#b = df.select_dtypes(object).mode().iloc[0]

print (df[df.columns.difference(a.index)].mode())
A F
0 d b
1 e NaN

df = df.fillna(a.append(b))
print (df)
A B C D F
0 e 4.5 7.0 1.0 b
1 d 4.5 5.0 3.0 b
2 d 4.0 9.0 5.0 a
3 d 5.0 4.0 2.0 b
4 e 5.0 2.0 1.0 b
5 d 4.0 3.0 0.0 b

关于python - pandas:数字列用均值填充,字符列用模式填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53612507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com