Как обновить фрейм данных Pandas значениями из списка диктов? - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть такой фрейм данных Pandas (это список хэндлов Twitter):

          label  favees
0       1NewsNZ       1
1          mhjb       1
2  citizenai_nz       1
...

Я хочу дополнить это информацией из профилей в Twitter. Функция python-twitter UsersLookup возвращает список диктовок следующим образом:

{"created_at": "Fri Apr 04 09:03:48 +0000 2008", "description": "Stay ahead with 1 NEWS
| Instagram and Snapchat: 1NewsNZ", "favourites_count": 2447, "followers_count": 152214,
"friends_count": 239, ...}

То, что я хочу сделать, это скопировать значения в этих трех столбцах в профилях для всех 100 строк в блок данных данных, все сразу. Последние три строки ниже не сработают, но, возможно, дают представление о том, что я пытаюсь сделать:

def populate_profiles(people_csv):
    people = pd.read_csv(OUTPUT_FOLDER + people_csv)
    api = connect_to_twitter.api()
    people_chunks = df_chunks(people, 100)
    for chunk in people_chunks:
        profiles = api.UsersLookup(screen_name=chunk['label'].values.tolist())
        chunk['name'] = profiles['name']
        chunk['description'] = profiles['description']
        chunk['image'] = profiles['profile_image_url']

После этого я добавляю выделенные строки в новый CSV. (df_chunks исходит от https://stackoverflow.com/a/44729807/1876628)

У меня такое чувство, что ответ как-то связан с dataframe.map.

1 Ответ

0 голосов
/ 09 ноября 2018

Не уверен, что это лучший способ, но, похоже, это работает:

chunk['name'] = [profile.name for profile in profiles]
chunk['description'] = [profile.description for profile in
chunk['image'] = [profile.profile_image_url for profile in profiles]

Спасибо за этот ответ за подсказку, которая мне нужна.

Пой, если есть более элегантный способ ...

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