【发布时间】:2021-02-05 20:36:09
【问题描述】:
假设我们有一个格式如下的数据框:
col1
{'overall_mean': '93.07', 'overall_median': '91.05'}
{}
{'overall_mean': '91.02', 'overall_median': '95.03'}
原始数据为json格式。我想从每一行中提取一些元素,这是我尝试过的:
df['col1'].apply(lambda col: col['overall_mean'])
如果我们在字典中有那个元素,一切都很好,但如果我们没有,它就会抱怨并且有意义。然后我改成了这个:
df['col1'].apply(lambda col: None if len(col['overall_mean']) == 1 else col['overall_mean'])
选择此条件len(col['overall_mean']) == 1 的原因是因为这是返回True 的唯一条件。但是它仍然找不到那些空值。
【问题讨论】:
-
也许这个列表理解会做:
df['col1'].apply(lambda col: col['overall_mean'] if 'overall_mean' in col else None) -
您能添加您的解决方案作为答案吗? get 方法工作得更快,但你的方法也有效。
标签: python json pandas dataframe null