我正在尝试使用 Python & Pandas 中的示例将“大小”列中的 NaN 替换为特定值,具体取决于城市。在下面的示例中,如果城市是圣路易斯,我将尝试分配 18 的值。
我使用 lambda 函数来执行此操作,因为原始数据框有很多行重复城市名称,并且只有少数行具有 NaN 值。
当我运行代码时出现错误 - KeyError: ('size', 'occured at index City')
以下是代码片段 -
raw_data = {'City' : ['Dallas', 'Chicago', 'St Louis', 'SFO', 'St Louis'],
'size': [24, 36, 'NaN', 'NaN', 22],
'Type' : ['Pie', 'Hallo', 'Zombi', 'Dru', 'Zoro']
}
df = pd.DataFrame(raw_data)
df
df['size'] = df.apply(lambda x : x['size'].fillna(value = 18 if x['City' == 'St Louis'] else x['size'], axis = 1, inplace = True))
df
预期 - 18 将填充到 St. Louis 的大小列中 实际 - KeyError: ('size', 'occured at index City')
慕妹3242003
慕村9548890
相关分类