【发布时间】:2020-07-23 17:25:03
【问题描述】:
我有一个包含两列的数据框:date 和 titles。 date 中的值是日期时间类型,在几个月的时间范围内,每一天都有一行。 titles 中的值分别类似于['Harry Potter', 'Lord of the Rings', 'Toy Story', ...] 等。
我想按周对这些数据进行分组。
我试过了
df_weekly = df.groupby([df.index, pd.Grouper(key='date', freq='W-MON')]).agg({
'headlines': lambda x: x
})
这不能正常工作;我仍然有相同的行数,只是日期列中的日期已更改为原始日期所在的一周中的最后一天。
我怎样才能让它看起来像
date titles
--------------------------------
2020-01-27 ['title 1', 'title 2', 'title 3', ...] # concatenated arr from all title arrs in that week
2020-02-03 ['title 1', 'title 2', 'title 3', ...]
...
我认为一个挑战也是尝试将title 列中的数组视为数组。我试图从from ast import literal_eval 插入literal_eval,但不确定如何实现我需要做的事情。
【问题讨论】:
-
Normall df.index 对于每一行都是唯一的。为什么要在 df.index 上分组?
-
缺少可以分组的东西。 'date' 也可以,但存在同样的问题。
标签: arrays pandas dataframe group-by