【问题标题】:How to convert a sub-dict to a dataframe?如何将子字典转换为数据框?
【发布时间】:2021-04-22 18:28:17
【问题描述】:

当我这样做时

subm = reddit.user.karma()
print(subm)

我得到了这种字典:

{Subreddit(display_name='AskReddit'): {'comment_karma': 1308, 'link_karma': 4}, Subreddit(display_name='food'): {'comment_karma': 67, 'link_karma': 72}, Subreddit(display_name='Documentaries'): {'comment_karma': 128, 'link_karma': 2}, Subreddit(display_name='explainlikeimfive'): {'comment_karma': 2, 'link_karma': 1},}

如何将其转换为 DF? 我尝试过的都不起作用,因为我总是收到错误TypeError: 'Subreddit' object is not iterableTypeError: cannot unpack non-iterable Subreddit object

来自 PRAW 文档:

返回的 dict 包含 subreddits 作为键。每个 subreddit 键都包含一个 sub-dict,其中包含 comment_karma 和 link_karma 的键。字典按业力降序排列。 注意:主字典的每个键都是 Subreddit 的一个实例。建议遍历 dict 以检索值,最好通过 dict.items()。

【问题讨论】:

    标签: python dataframe dictionary subdirectory praw


    【解决方案1】:
    df = pd.DataFrame(data=subm.values(), index=(key.display_name for key in subm.keys()))
    

    您将获得一个 DataFrame,其中原始 sub-dicts 的键作为列,每个 Subreddit 对象的display_name 作为索引。 您始终可以使用 .T 属性切换 DataFrame 的索引和列。

    【讨论】:

    • 嗨,Enrico,谢谢,快速高效。还要感谢转置选项的解释和提示。
    猜你喜欢
    • 2019-05-26
    • 2020-07-06
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    相关资源
    最近更新 更多