Я делаю API-вызов в Facebook, и одно из полей - «действия», которое создает словарь, который я хотел бы разбить на отдельные столбцы DataFrame. Я видел несколько похожих вопросов, используя pd.Series (), чтобы отобразить их в отдельные столбцы или json.normalize (), но они точно не выполняют то, что я ищу.
Вот экспорт передЯ помещаю его в столбец данных:
[<AdsInsights> {
"actions": [
{
"action_type": "landing_page_view",
"value": "292"
},
{
"action_type": "comment",
"value": "13"
},
{
"action_type": "onsite_conversion.post_save",
"value": "6"
},
{
"action_type": "link_click",
"value": "874"
},
{
"action_type": "post",
"value": "1"
},
{
"action_type": "post_reaction",
"value": "393"
},
{
"action_type": "post_engagement",
"value": "96"
},
{
"action_type": "page_engagement",
"value": "96"
},
{
"action_type": "omni_activate_app",
"value": "5"
},
{
"action_type": "omni_app_install",
"value": "2"
},
{
"action_type": "omni_add_to_cart",
"value": "75"
},
{
"action_type": "add_to_wishlist",
"value": "14"
},
{
"action_type": "omni_purchase",
"value": "4"
},
{
"action_type": "omni_search",
"value": "12"
},
{
"action_type": "omni_view_content",
"value": "15"
}
]
Затем я помещаю его в DF, но столбец становится действием, и он помещает все эти данные в одну строку, а затем повторяет их для каждого элемента. У меня возникли проблемы с разбиением action_type на заголовок столбца и значение в строке. Я получаю несколько строк этих наборов данных, когда создаю DF.
, когда я создаю фрейм данных, это выглядит так:
df[ad] df[actions]
0 ad1 [{'action_type': 'landing_page_view', 'value':...
1 ad2 [{'action_type': 'landing_page_view', 'value':...
2 ad3 [{'action_type': 'landing_page_view', 'value':...
Я надеюсь получить:
df[ad] df[landing_page_view] df[comment] ...etc
0 ad1 292 13
1 ad2 100 8
2 ad3 80 9
Я пытался выбрать конкретные столбцы, которые я хотел сделать, но это не работает:
df = all of the raw data from the API call
df = pd.DataFrame(df)
actions = df['actions']
def setcolumn(dict, key):
if dict.has_key(key):
df['key'] = 'value'
else:
print ("Not present")
setcolumn(actions, 'landing_page_view')
, но это говорит о том, что у объекта серии нет атрибута has_key.
ценится любое направление!