首页 > 解决方案 > 如何使用字典列表中的值更新 Pandas 数据框?

问题描述

我有一个像这样的 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有关。

标签: pythonpandastwitter

解决方案


不确定这是最好的方法,但这似乎有效:

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]

感谢这个答案提供了我需要的线索。

如果有更优雅的方式,请大声唱出来……</p>


推荐阅读