繁体   English   中英

如果A列的日期相同但时间不同,则获取B列的平均值

[英]Taking average values in column B if column A has the same date but different time

因此,我有一个熊猫数据框,其中有一个包含数据和时间的列,另一个包含浮点值的列。 现在,我想取第二列中的值的平均值,如果日期与时间无关,则相同,并且只想显示该日期的一个值。 有人可以帮忙吗?

例如-

**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 A列的dtypedatetime64[ns] ,我有超过3k的行具有不同的datetime和值

有人可以帮忙吗?

编辑正如您所说的,数据框是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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM