gpt4 book ai didi

python-3.x - 如何重用 df.groupby() 的结果。意味着在另一个数据框中填充 NaN?

转载 作者:行者123 更新时间:2023-12-04 10:50:02 25 4
gpt4 key购买 nike

我正在处理 the titanic dataset .

我计算 df['Age'] 的平均值基于'Sex'和'Pclass',填充df['Age']中的NaN .

代码如下:

import pandas as pd
df = pd.read_csv('train.csv')
df['Age'] = df.groupby(['Sex','Pclass'])['Age'].transform(lambda x:x.fillna(x.mean()))

这工作正常,但现在,在测试集上,我想要 用训练集中按“性别”和“Pclass”分组的平均年龄值填充 NaN。
我可以通过 df.groupby(['Sex', 'Pclass'])['Age].mean() 轻松获取这些值,但我不知道如何重用这些值来填充测试数据帧中的 NaN。

谁能帮我?

最佳答案

使用 DataFrame.merge 使用左连接,然后用 Series.fillna 替换缺失值与 DataFrame.pop :

mean = df1.groupby(['Sex', 'Pclass'], as_index=False)['Age'].mean()

df2 = df2.merge(mean, on=['Sex','Pclass'], how='left', suffixes=('','_'))
df2['Age'] = df2['Age'].fillna(df2.pop('Age_'))

关于python-3.x - 如何重用 df.groupby() 的结果。意味着在另一个数据框中填充 NaN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59530067/

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