【问题标题】:Created Dataframe with dictionary使用字典创建数据框
【发布时间】:2020-05-10 01:07:44
【问题描述】:

我想创建一个带有字典的数据框。我创建了我的字典,我想在 Dataframe 中将其转换为一列用于月份,第二列用于值。

您有解决我问题的想法吗?

我的字典:{'Jan': [1, 5], 'Apr': [2, 6], 'Mar': [3, 7], 'June': [4, 8]}

            import pandas as pd
        from collections import defaultdict


        # d = {('20170330', 'A'): {'earn': '16.02'},('20170331', 'A'): {'earn': '25.68'},('20170330', 'AA'): {'earn': '321321'}}

        months = ['Jan','Apr','Mar','June','Jan','Apr','Mar','June']
        days = [1,2,3,4,5,6,7,8]

        zipped = zip(months, days)

        d = {}
        for items in zipped:
            res = d.setdefault(items[0], [])
            res.append(items[1])

        print(d)

谢谢你!

【问题讨论】:

标签: python pandas dataframe dictionary multi-index


【解决方案1】:

你可以使用stack:

pd.DataFrame(d).stack() \
    .rename_axis([None, 'Month']) \
    .to_frame('Day') \
    .reset_index(level=1) \
    .reset_index(drop=True)

stack 产生一个系列,所以最后 4 行只是试图产生一个 DataFrame 并使其成形。

结果:

  Month  Day
0   Jan    1
1   Apr    2
2   Mar    3
3  June    4
4   Jan    5
5   Apr    6
6   Mar    7
7  June    8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-12
    • 2021-08-18
    • 1970-01-01
    • 2021-12-30
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    相关资源
    最近更新 更多