所以,我有一个熊猫数据框,其中有一列包含数据和时间,另一列包含浮点值。现在,我想取第二列中的值的平均值,如果日期与时间无关,则相同,并且只想显示该日期的一个值。 有人可以帮忙吗?
例如-
**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的行具有不同的日期时间和值
有人可以帮忙吗?
答案 0 :(得分:1)
编辑正如您所说的数据框为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