gpt4 book ai didi

python - 用字符串值替换数据框中的 NaN

转载 作者:太空宇宙 更新时间:2023-11-04 05:00:38 25 4
gpt4 key购买 nike

我想用“缺失值”替换我的 df 一列中的缺失值。我试过了

result['emp_title'].fillna('missing')

result['emp_title'] = result['emp_title'].replace({ np.nan:'missing'})

第二个有效,因为当我计算此代码后的缺失值时:

result['emp_title'].isnull().sum()

它给了我 0。然而,第一个没有像我预期的那样工作,它没有给我一个 0,而不是之前的缺失值计数。为什么第一个不起作用?谢谢!

最佳答案

您需要就地填写或分配:

result['emp_title'].fillna('missing', inplace=True)

result['emp_title'] = result['emp_title'].fillna('missing') 

MVCE:

In [1697]: df = pd.DataFrame({'Col1' : [1, 2, 3, np.nan, 4, 5, np.nan]})

In [1702]: df.fillna('missing'); df # changes not seen in the original
Out[1702]:
Col1
0 1.0
1 2.0
2 3.0
3 NaN
4 4.0
5 5.0
6 NaN

In [1703]: df.fillna('missing', inplace=True); df
Out[1703]:
Col1
0 1
1 2
2 3
3 missing
4 4
5 5
6 missing

您应该知道,如果您尝试将 fillna 应用于切片,请不要使用 inplace=True,而是使用 df.loc/iloc 并分配给子切片:

In [1707]: df.Col1.iloc[:5].fillna('missing', inplace=True); df # doesn't work
Out[1707]:
Col1
0 1.0
1 2.0
2 3.0
3 NaN
4 4.0
5 5.0
6 NaN

In [1709]: df.Col1.iloc[:5] = df.Col1.iloc[:5].fillna('missing')

In [1710]: df
Out[1710]:
Col1
0 1
1 2
2 3
3 missing
4 4
5 5
6 NaN

关于python - 用字符串值替换数据框中的 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45826792/

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