熊猫:按日期和另一个变量的中位数分组

新手上路,请多包涵

这是我的 DataFrame 的演示示例。完整的 DataFrame 有多个附加变量,涵盖 6 个月的数据。

 sentiment     date
1             2015-05-26 18:58:44
0.9           2015-05-26 19:57:31
0.7           2015-05-26 18:58:24
0.4           2015-05-27 19:17:34
0.6           2015-05-27 18:46:12
0.5           2015-05-27 13:32:24
1             2015-05-28 19:27:31
0.7           2015-05-28 18:58:44
0.2           2015-05-28 19:47:34

我想仅按 date 列的日期对 DataFrame 进行分组,但同时聚合 sentiment 列的中位数。

我用 groupbydt 访问器和 timegrouper 尝试的一切都失败了。

我想返回一个 pandas DataFrame 而不是 GroupBy 对象。

日期列是 M8[ns]

情绪栏 float64

原文由 RDJ 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 280
2 个回答

幸运的是,您在问题中列出了所需的工具。

 In [61]: df.groupby(df.date.dt.date)[['sentiment']].median()
Out[61]:
            sentiment
2015-05-26        0.9
2015-05-27        0.5
2015-05-28        0.7

原文由 chrisaycock 发布,翻译遵循 CC BY-SA 3.0 许可协议

我会这样做:

 df['date'] = df['date'].apply(lambda x : x.date())
df = df.groupby('date').agg({'sentiment':np.median}).reset_index()

您首先用日期替换日期时间列。然后执行 groupby+agg 操作。

原文由 Joseph Yourine 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题