我有一个数据框 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/