python - Pandas:根据数据框中的组合填充缺失值

标签 python pandas search replace row

我有一个 DataFrame df 包含 i.a.一列表示邮政编码,一列表示地区名称。同一行上的邮政编码地区名称形成“现实生活”组合,例如{'邮政编码': '10001', '地区':'北区'}.

对于某些邮政编码条目,缺少地区名称。但是,缺少地区名称的邮政编码可能会与其地区名称一起出现在数据帧的其他位置。即,

| postal code |   district  |
-----------------------------
|   10001     |    North    |
|   10002     |    West     |
|   10001     |   missing   |

如果邮政编码缺少地区名称,我想在DataFrame中搜索与该特定邮政编码地区名称。

如果找到组合且全部相同,我想将缺少的district 名称替换为找到的组合中的district 名称。 如果找到组合,但不完全相同(例如邮政编码重叠两个区),我不想替换。

我该怎么办?

最佳答案

df = df.replace('missing', np.nan).sort_values(['postal code', 'district'])
df.groupby('postal code').ffill().sort_index()

   postal code district
0        10001    North
1        10002     West
2        10001    North

我排序是因为 np.nan 将被放置在末尾并准备好向前填充。

关于python - Pandas:根据数据框中的组合填充缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43063633/

相关文章:

python - 为什么我的 Python 测试生成器根本不起作用?

python - 在 OS X Snow Leopard 上运行 scipy 和 numpy 测试时出错

python - 我尝试安装 "pip install mysqlclient"但每次都失败。尝试了所有其他方法,但也没有成功。我应该怎么办?

python - 具有 2 个 df 的 Pandas 师

c# - ASP :NET MVC multiple words in search

c# - Sharepoint 2010。搜索

python - 使用 SQLObject ORM 筛选 "value in list"

python - 根据其他列的值填充一列

Mysql 多关键字相似搜索 - 按字符串中最多关键字排序

python - 如何构建距离或相异矩阵?