大熊猫按天,周或月分组

时间:2020-02-20 07:35:38

标签: python-3.x pandas

我是熊猫初学者。

我有以下数据:

.owl-carousel .owl-item .item {
   border: 1px solid transparent;
   box-shadow: inset 0px 0px 0px 1px #000000;
}

我想要:

a = [
    {"content": '1', "time": '2020-01-01'}, {"content": '4', "time": '2020-01-01'},
    {"content": '2', "time": '2020-01-02'},
    {"content": '3', "time": '2020-02-01'}, {"content": '4', "time": '2020-02-02'},
    {"content": '5', "time": '2020-03-01'}, {"content": '6', "time": '2020-03-02'}
]

1 个答案:

答案 0 :(得分:3)

首先将字典列表转换为DataFrame,然后将日期时间转换为YY-MM格式:

df = pd.DataFrame(a)
g = pd.to_datetime(df['time']).dt.strftime('%Y-%m')

然后在dict理解中创建列表字典:

d1 = {k: v.to_dict('r') for k, v in df.groupby(g)}

如果性能很重要的另一种解决方案:collections.defaultdict

from collections import defaultdict

d = defaultdict(list)
for x in a:
    d[x['time'][:7]].append(x)
d = dict(d)