У меня есть кадр данных, который выглядит примерно так:
A B
55 {'created by':Max,'id':22}
38 {}
44 {'created by':John,'id':11}
Я хочу создать новый столбец, который содержит значение 'id' из столбца B, но если словарь пуст, он должен скопировать вместо этого целое число из столбца А.
Я пытался
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