Как эффективно сгладить структуру JSON, возвращаемую в запросахasticsearch_dsl? - PullRequest
0 голосов
/ 06 января 2020

Я используюasticsearch_dsl для выполнения запросов и поиска в базе данных эластичного поиска.

Одним из полей, которые я запрашиваю, является адрес, который как структура выглядит следующим образом:

address.first_line
address.second_line
address.city
adress.code

В возвращенных документах это хранится в JSON структурах, так что адрес проводится в диктовке с полем для каждого подполя адреса.

Я хотел бы поместить это в (pandas) фрейм данных, чтобы в каждом подполе адреса был один столбец.

Непосредственное помещение адреса в информационный фрейм дает мне столбец адресовных диктов, а итерация строк для ручной распаковки (json.normalize()) каждого адреса требует много времени (4 дня, ~ 200 000 строк).

Из документов я не могу понять, как заставитьasticsearch_dsl возвращать сглаженные результаты. Есть ли более быстрый способ сделать это?

1 Ответ

0 голосов
/ 13 января 2020

df.column_of_dicts.apply(pd.Series) возвращает DataFrame со сглаженными этими диктовками.

pd.concat(df,new_df) возвращает новые столбцы на старый кадр данных.

Затем удалите исходные column_of_dicts.

pd.concat([df, df.address.apply(pd.Series)], axis=1) - фактический код, который я использовал.

...