gpt4 book ai didi

python - 根据其他列值处理缺失值

转载 作者:行者123 更新时间:2023-12-02 06:31:40 25 4
gpt4 key购买 nike

我有一个数据框 df:

df = pd.DataFrame({'City': ['Cambridge','','Boston','Washignton','','Tampa',
'Danvers','Miami','Cambridge','Miami','','Washington'], 'State': ['MA','DC','MA',
'DC','MA','FL','MA','FL','MA','FL','FL','DC']})

正如我们在上面的 df 中看到的,我有两列“城市”和“州”。有 3 个城市带有“”(无值)。我想为城市中那些缺失的值分配一个值。分配必须按以下方式完成 - 应将特定州存在最大次数的城市分配给该特定州的缺失值。例如:第2个缺失城市对应MA州。现在,如果我仔细查看数据,“剑桥”是 MA 州出现次数最多的城市。因此,该缺失值应替换为“Cambridge”。

按照同样的趋势,第一个缺失的城市应该是华盛顿,第二个应该是剑桥,第三个应该是迈阿密。

我将如何使用 pandas 完成此任务?

最佳答案

IIUC

df.update(df.replace('', np.nan).set_index('State', append=True) \
.groupby(level='State').City \
.apply(lambda x: x.fillna(x.value_counts().idxmax())) \
.reset_index('State', drop=True))
df

enter image description here

<小时/>

引用代码
注意:附加列A是原始的City列,可以更轻松地查看填写的城市位置。

df = pd.DataFrame({
'City': ['Cambridge','','Boston','Washignton','','Tampa',
'Danvers','Miami','Cambridge','Miami','','Washington'],
'State': ['MA','DC','MA','DC','MA','FL',
'MA','FL','MA','FL','FL','DC'],
'A': ['Cambridge','','Boston','Washignton','','Tampa',
'Danvers','Miami','Cambridge','Miami','','Washington']})

df.update(df.replace('', np.nan).set_index('State', append=True) \
.groupby(level='State').City \
.apply(lambda x: x.fillna(x.value_counts().idxmax())) \
.reset_index('State', drop=True))
df

enter image description here

关于python - 根据其他列值处理缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40275462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com