python - 使用 Pandas 中的方法和逻辑分组来填充缺失值

标签 python pandas grouping missing-data

在 Python 中有一个这样的数据框:

x1 x2 x3
a  1  1000
a  1  2390
a  1   ?
b  2  120
b  2  2000

所以我的目标是填写 x3 列中的所有缺失值。但是,如果我使用标准方法 (pd.fillna(df.mean()),我不会得到理想的结果。我希望能够以某种方式不对 x3 列进行简单的 mean(),而对所有 x3 仅进行 mean() x1=a 和 x2=1 的值。如何在 Python Pandas 中完成?

最佳答案

您可以使用 groupby.transform() 按组填充缺失值:

df['x3'] = df.groupby(["x1", "x2"])['x3'].transform(lambda x: x.fillna(x.mean()))

enter image description here

关于python - 使用 Pandas 中的方法和逻辑分组来填充缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41625489/

相关文章:

php - 需要帮助分组 php 数组

mysql - 如何在 MySQL 中按日期对相关结果进行分组和排序

mysql - 在 LINQ 中执行 FirstOrDefault 的替代方法

python - 打印 Python 列表中的值报告 ValueError

python-3.x - 应用自定义函数从字符串中提取数字到 Python 中的多列

python - 如何捕获Key_tab事件

python - 如何在 Python 中将字符串类型数据反转为非字符串数据

python - 如何使用 groupBy 创建新列并从行进行转换

Python运行带有子进程的cm​​d命令(ffmpeg)并在执行某些代码之前等待cmd关闭

python - 遍历 *args 重置计数器