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

时间:2017-03-28 07:49:46

标签: python pandas search replace row

我有一个包含i.a的DataFrame dfpostal codes列和district名称列。同一行中的postal codedistrict名称形成了真实的生活。组合,例如{'postal code': '10001', 'district':'North'}

对于某些postal code条目,缺少district个名称。但是,缺少postal code名称的district可能会与其district名称一起出现在数据框的其他位置。即,

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

如果postal code缺少district名称,我想在DataFrame中搜索与特定postal codedistrict名称的组合。

如果找到了组合,并且完全相同,我想在找到的组合中替换district名称中缺少的district名称。 如果找到组合但不完全相同(例如postal code重叠两个区域),我不想替换。

我该怎么办?

1 个答案:

答案 0 :(得分:2)

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将被放置在最后并准备好向前填充。