Создан Dataframe со словарем - PullRequest
1 голос
/ 23 января 2020

Я хотел бы создать фрейм данных со словарем. Я создал свой словарь, я хотел бы преобразовать это в 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)

Спасибо!

1 Ответ

1 голос
/ 24 января 2020

Вы можете использовать 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
...