根据 Python 中的同一所有者填写空地址

Fill Null address based on the same owner in Python

假设我有一个 table 像这样的房屋清洁服务。

| Customer| House Address | Date     |
| ------- | ------------- | -------- |
| Sam     | London        | 10/01/22 |
| Lina    | Manchester    | 12/01/22 |
| Sam     | Null          | 15/01/22 |

我们知道Sam的住址应该是London(假设customer id是一样的)

如何根据第一行填充第三行?

数据:

{'Customer': ['Sam', 'Lina', 'Sam'],
 'House Address': ['London', 'Manchester', nan],
 'Date': ['10/01/22', '12/01/22', '15/01/22']}

您可以 groupby“Customer”并将 first 转换为“House Address”(first 删除 NaN 值,因此只会为 Sam 选择 London)。它 returns 一个与原始索引相同的数据帧 df 填充了转换后的第一个。

然后将其传递给 fillna 以在“住宅地址”中填充 NaN 值:

df['House Address'] = df['House Address'].fillna(df.groupby('Customer')['House Address'].transform('first'))

输出:

  Customer House Address      Date
0      Sam        London  10/01/22
1     Lina        Sydney  12/01/22
2      Sam        London  15/01/22