从字典中的项目创建自定义的 pandas 数据框

发布于 2025-01-11 22:53:27 字数 673 浏览 0 评论 0原文

我想从字典中的项目创建一个自定义的 pandas DataFrame。例如,我可以使用 pandas 的 from_dict() 函数将字典转换为 DataFrame:

data = {'wordA': [3, 2, 1, 0], 'wordB': [33, 12, 1, 8], 'wordC': [54, 10, 7, 3]} 
pd.DataFrame.from_dict(data, orient='index', columns=['col1', 'col2', 'col3', 'col4'])

生成如下所示的 DataFrame:

        col1    col2    col3    col4
wordA   3       2       1       0
wordB   33      12      1       8
wordC   54      10      7       3

但是我想要的是只有 2 列,如下所示,其中word 列返回字典键,<​​strong>count 列返回列表中包含的字典值的计数。

word    count
wordA   4
wordB   4
wordC   4

我怎样才能实现这个目标?

I want to create a customised pandas DataFrame from items in dictionary. For example I can convert a dictionary to a DataFrame using pandas' from_dict() function:

data = {'wordA': [3, 2, 1, 0], 'wordB': [33, 12, 1, 8], 'wordC': [54, 10, 7, 3]} 
pd.DataFrame.from_dict(data, orient='index', columns=['col1', 'col2', 'col3', 'col4'])

To produce a DataFrame such as below:

        col1    col2    col3    col4
wordA   3       2       1       0
wordB   33      12      1       8
wordC   54      10      7       3

However what I want is to have only 2 columns, such as below, where the word column returns the dictionary keys and count column returns a count of the dictionary values contained in the list.

word    count
wordA   4
wordB   4
wordC   4

How can I achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

带刺的爱情 2025-01-18 22:53:27

您可以更改传递给构造函数的字典:

out = pd.DataFrame.from_dict({i: {'word': k, 'count': len(v)} 
                              for i, (k, v) in enumerate(data.items())}, 
                             orient='index')

out = (pd.DataFrame.from_dict({'count': {k: len(v) for k, v in data.items()}})
       .rename_axis('word').reset_index())

输出:

    word  count
0  wordA      4
1  wordB      4
2  wordC      4

You could change the dictionary that you pass to the constructor:

out = pd.DataFrame.from_dict({i: {'word': k, 'count': len(v)} 
                              for i, (k, v) in enumerate(data.items())}, 
                             orient='index')

or

out = (pd.DataFrame.from_dict({'count': {k: len(v) for k, v in data.items()}})
       .rename_axis('word').reset_index())

Output:

    word  count
0  wordA      4
1  wordB      4
2  wordC      4
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文