python - 使用 pandas 更新列中的缺失值

标签 python pandas

我有一个数据框 df,其中两列是“city”和“zip_code”:

df = pd.DataFrame({'city': ['Cambridge','Washington','Miami','Cambridge','Miami',
'Washington'], 'zip_code': ['12345','67891','23457','','','']})

如上所示,特定城市的其中一行中包含邮政编码,但同一城市的其他行中缺少邮政编码。我想根据其他行中该城市的邮政编码值来填充这些缺失值。基本上,只要缺少 zip_code,它就会检查其他行中该城市的 zip_code,如果找到,则填充 zip_code 的值。如果未找到,则填充“NA”。

如何使用 pandas 完成此任务?

最佳答案

您可以选择:

import numpy as np

df['zip_code'] = df.replace(r'', np.nan).groupby('city')['zip_code'].fillna(method='ffill').fillna(method='bfill')

>>> df
         city zip_code
0   Cambridge    12345
1  Washington    67891
2       Miami    23457
3   Cambridge    12345
4       Miami    23457
5  Washington    67891

关于python - 使用 pandas 更新列中的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40301120/

相关文章:

python - Raspberry Pi python显示内存中的图像

python - Django 自定义用户未向管理员注册

python - 通过instance.cmd()调用带有参数的函数

python - 如何在 Python 中获取列表中的所有最高整数

python - 根据另一列值划分同一列中的行

python - Numpy 操作对 groupby 无效。使用 .groupby(...).mean() 代替,这就是我所做的

python - 为什么 sklearn.pipeline 中预处理方法的输出不一致?

python - 系列的链接过滤器

python - Pandas:缩短多列的字符串

python - 使用 Pandas 按用户名选择行