python - 在 Pandas 中用 .loc 覆盖 Nan 值

标签 python pandas nan pandas-loc

<分区>

我尝试使用以下代码行来解决所需的任务:

df['Age'][np.isnan(df["Age"])] = rand1

enter image description here

但这会引发“SettingWithCopyWarning”,我认为使用 .loc 功能在数据框(“年龄”列)中定位 Nan 值可能是更好的方法。

我已经看过 documentation ,但仍然不知道如何解决此问题。也无法在此处使用 .loc 找到任何解决方案。

我将不胜感激任何提示和建议。

最佳答案

你需要fillnaNaN 替换为某个值:

df.Age = df.Age.fillna(rand1)

loc 的解决方案:

df.loc[np.isnan(df["Age"]), 'Age'] = rand1
#same as
#df.loc[df["Age"].isnull(), 'Age'] = rand1

您还可以检查indexing view versus copy .

示例:

df = pd.DataFrame({'Age':[20,23,np.nan]})
print (df)
    Age
0  20.0
1  23.0
2   NaN

rand1 = 30
df.Age = df.Age.fillna(rand1)
print (df)
    Age
0  20.0
1  23.0
2  30.0

#if need cast to int
df.Age = df.Age.fillna(rand1).astype(int)
print (df)
   Age
0   20
1   23
2   30

关于python - 在 Pandas 中用 .loc 覆盖 Nan 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42449169/

相关文章:

python - 如何将其中没有的列表转换为 torch.tensor()?

python - 将不同列表的特定元素合并到新列表

clr - Intel x64 FPU 中的 NaN 算法有多慢?

python - 是什么导致我的函数出现 "ValueError: cannot convert float NaN to integer"

python - Pandas 等级函数产生非整数?

javascript - 尝试计算价格时出现 NaN

python - 为 AxesImage 自定义刻度?

python - statsmodels ARIMA 结果与原始数据的比较

python - MySQL "IN"查询中的多个参数

python - 如何将每一行对与前一列相关联?