gpt4 book ai didi

python - 将函数应用于 Pandas 中分组数据的单列

转载 作者:太空宇宙 更新时间:2023-11-04 01:16:07 24 4
gpt4 key购买 nike

有一个 pandas 数据框,如下所示

      Bank       date               creationdate
0 JP Morgan 2010-07-22 2010-07-22 12:17:38.187000
1 JP Morgan 2010-07-31 2010-07-31 12:41:57.083000
2 JP Morgan 2010-11-18 2010-11-18 19:24:15.503000
3 JP Morgan 2011-03-08 2011-03-08 18:57:31.477000
4 JP Morgan 2011-04-27 2011-04-27 13:13:01.357000
5 JP Morgan 2011-05-01 2011-05-01 17:19:28.773000
6 JP Morgan 2011-05-06 2011-05-06 19:40:51.757000
7 JP Morgan 2011-05-10 2011-05-10 01:14:52.503000
8 JP Morgan 2011-05-23 2011-05-23 20:36:18.490000
9 JP Morgan 2011-05-25 2011-05-25 15:51:08.650000
10 JP Morgan 2011-05-28 2011-05-28 21:08:30.270000
11 JP Morgan 2011-05-29 2011-05-29 04:18:26.693000
12 JP Morgan 2011-06-03 2011-06-03 16:54:13.770000
13 JP Morgan 2011-06-08 2011-06-08 18:35:50.450000
14 JP Morgan 2011-06-08 2011-06-08 18:37:12.493000
15 JP Morgan 2011-06-08 2011-06-08 18:37:45.593000

我想找出每个日期的创建日期之差的平均值。为此,我正在做一个 groupby 并调用 diff,然后对分组数据进行平均

df_grouped = date_df.groupby(['bank', 'date'], as_index = False)
mean = df_grouped['creationdate'].diff().mean()

但这给了我所有差异的平均值,而不是给出对应于每个日期的差异的平均值。

请建议我如何获得每个日期的差异均值

最佳答案

我认为您可以使用 .aggregate 一步完成此操作,而不是尝试分两步完成:

In [30]:

print df_grouped['creationdate'].aggregate(lambda x: (np.diff(x)).mean())
Bank date creationdate
0 JP Morgan 2010-07-22 NaT
1 JP Morgan 2010-07-31 NaT
2 JP Morgan 2010-11-18 NaT
3 JP Morgan 2011-03-08 NaT
4 JP Morgan 2011-04-27 NaT
5 JP Morgan 2011-05-01 NaT
6 JP Morgan 2011-05-06 NaT
7 JP Morgan 2011-05-10 NaT
8 JP Morgan 2011-05-23 NaT
9 JP Morgan 2011-05-25 NaT
10 JP Morgan 2011-05-28 NaT
11 JP Morgan 2011-05-29 NaT
12 JP Morgan 2011-06-03 NaT
13 JP Morgan 2011-06-08 00:00:57.571500

在您显示的示例数据中,只有 2011-06-08 具有多个值,并且会生成 NaT 以外的数字

关于python - 将函数应用于 Pandas 中分组数据的单列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24564047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com