python - 如果 A 列具有相同的日期但不同的时间,则在 B 列中取平均值
问题描述
所以,我有一个熊猫数据框,其中有一列包含数据和时间,另一列包含浮点值。现在我想取第二列中的值的平均值,如果日期相同而与时间无关,并且只想显示该日期的一个值。有人可以帮忙吗?
例如-
**1st row**- Column A - '2018-12-08 04:51:58', Column B- '3', Column C- '4'
**2nd row**- Column A - '2018-12-08 04:51:49', Column B- '2', Column C- '3'
**3rd row**- Column A - '2018-12-08 04:51:57', Column B- '1', Column C- '2'
我想要的输出是:
Column A- '2018-12-08', Column B- '2', Column C- '3'
PS列dtype
A 是datetime64[ns]
,我有超过 3k 行具有不同的日期时间和值
任何人都可以帮忙吗?
解决方案
编辑正如您所说,您的数据框是datetime64[ns]
,例如:
date C
0 2018-09-14 00:00:00 4
1 2018-09-14 00:10:00 3
2 2018-09-14 01:10:00 2`
利用:
df.groupby(df['date'].dt.date).mean().reset_index()
或者 :
df.groupby(df['date'].dt.floor('d')).mean().reset_index()
输出:
date C
0 2018-09-14 3
要获得总和并除以 2:
df.groupby(df['date'].dt.date).apply(lambda x : x['C'].sum()/2).reset_index().rename(columns={0:'new'})
或(我刚刚发现的另一种方法)
df.groupby(df['date'].dt.floor('d')).apply(lambda x : x['C'].sum()/2).reset_index().rename(columns={0:'new'})
输出:
date new
0 2018-09-14 4.5
推荐阅读
- java - 如何删除具有 OneToMany 关系的实体?
- node.js - Hapi 前端不同的服务器
- c# - 访问动态属性引发了“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException”类型的异常
- django - 当我是 Django 新手时,如何将 request.get 传递给表单标签的 action 属性
- docker - 在 3.7-slim-buster 映像上安装 mongodb,以使用 mongoimport
- macos - 如何通过 hidutil 重新映射损坏的箭头键?
- javascript - 最佳实践 Typescript 和 React
- ansible - 尝试动态形成条件时,替代在“when”中进行模板化
- mysql - &符号不适用于 Sequelize 查询
- java - 如何通过条件获得正确的实现