![](/img/trans.png)
[英]How to replace the rows in column A with the rows in column B only when column B has values different from NaT in Python?
[英]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列的dtype
是datetime64[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.