Python 替换pandas.DataFrame中丢失的数据不工作

Python 替换pandas.DataFrame中丢失的数据不工作,python,pandas,dataframe,nan,boolean-logic,Python,Pandas,Dataframe,Nan,Boolean Logic,我在挖坑 我有一个pandas.DataFrame,其中一列“Age”有一些NaN'值分散,另一列名为IsAlone我创建了另一个列,其值为1或0,这取决于根据个人规则,该船上只有一个人 我试图用单身者的平均年龄替换列Age中的NaN值,与不单身者的平均年龄相同。这样做的目的只是使用数据帧,根据规则替换NaN值 我这样做是为了那些孤独的人: df_train[(df_train.IsAlone.astype(bool) & df_train.Age.isnull() )].Age = \

我在挖坑

我有一个pandas.DataFrame,其中一列“Age”有一些
NaN'
值分散,另一列名为
IsAlone
我创建了另一个列,其值为
1
0
,这取决于根据个人规则,该船上只有一个人

我试图用单身者的平均年龄替换列
Age
中的
NaN
值,与不单身者的平均年龄相同。这样做的目的只是使用数据帧,根据规则替换
NaN

我这样做是为了那些孤独的人:

df_train[(df_train.IsAlone.astype(bool) & df_train.Age.isnull() )].Age = \
    df_train[(df_train.IsAlone.astype(bool) & ~df_train.Age.isnull() )].Age.mean()
对那些并不孤单的人也是如此:

df_train[(~df_train.IsAlone.astype(bool) & df_train.Age.isnull() )].Age = \
    df_train[(~df_train.IsAlone.astype(bool) & ~df_train.Age.isnull() )].Age.mean()
但这根本不起作用,列
Age
仍然具有相同的
NaN


对此有何想法?

问题在于,原始帧的副本上的值发生了更改。有关详细信息,请参阅。如文件所示:

在对象中设置值时,必须注意避免所谓的链式索引

要更改原始帧视图上的值,可以执行以下操作:

j = df_train.IsAlone.astype(bool) & df_train.Age.isnull()
i = df_train.IsAlone.astype(bool) & ~df_train.Age.isnull()
df_train.loc[j, 'Age'] = df_train.loc[i, 'Age'].mean()

显示示例数据和预期结果。尝试
df_train.loc[此处的条件,'Age']=任何工作正常的
@behzad.nouri!谢谢请你详细说明一下得奖的原因,好吗?