根据 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
假设我有一个 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