I have a dataframe that looks similar to this:
A B
55 {'created by':Max,'id':22}
38 {}
44 {'created by':John,'id':11}
我想创建一个新列,其中包含来自B列的'id'值,但如果字典为空,则应复制A列中的整数。
我已尝试过:
df['C'] = [df.A[x] if df.B[x] == {} else df.B[x]['id'] for x in df]
但是它会返回一个 KeyError: 'id' 错误,我认为这是因为没有 'id' 键。那么 if 语句不应该修复这个问题吗?
我也尝试过
df['C'] = [df.A if df.B[x] == {} else df.B[x]['id'] for x in df]
但是这会将A列中的所有内容作为一个对象复制到C列的每个单元格中。
预期结果:
A B C
55 {'created by':Max,'id':22} 22
38 {} 38
44 {'created by': John,'id':11} 11