Предоставление значений по умолчанию для pandas .io.json_normalize - PullRequest
1 голос
/ 17 января 2020

У меня есть список словарей, например:

dictionary= {'a': 1, 'b':[{'c':2},{'c':3}], 'd' : 'not_relevant_data'}

, и я хочу создать DataFrame, например:

'a' 'c'
 1   2
 1   3

, что можно сделать с помощью df = json_normalize(data=list_of_dictionaries, record_path = 'b', meta ='a').

Проблема возникает, когда 'b' отсутствует в одном из словарей. dictionary = {'a':4, 'd': 'not_relevant_data'} приведет к ошибке KeyError, но я хотел бы получить df вроде:

'a' 'c'
 4   None

Есть ли способ предоставления значения по умолчанию в случае, если record_path не существует? Есть ли другой способ сделать это?

Вся помощь приветствуется.

1 Ответ

1 голос
/ 17 января 2020

чтобы получить желаемый результат, вы можете создать функцию, в которую вы добавите желаемое поведение:

def add_for_missing(d, record_path, wanted_column='c'):
    if record_path not in d:
        return {**d, record_path: [{wanted_column: None}]}
    return d

json_normalize(data=add_for_missing(dictionary, 'b'), record_path = 'b', meta ='a')

выход:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...