gpt4 book ai didi

python - 将函数应用于一系列特定行

转载 作者:行者123 更新时间:2023-12-01 01:08:59 27 4
gpt4 key购买 nike

我有以下数据框df:

            bucket_value  is_new_bucket
dates
2019-03-07 0 1
2019-03-08 1 0
2019-03-09 2 0
2019-03-10 3 0
2019-03-11 4 0
2019-03-12 5 1
2019-03-13 6 0
2019-03-14 7 1

我想将特定函数(假设为均值函数)应用于每个 bucket_value 数据组,其中 is_new_bucket 列等于 0,这样生成的数据帧看起来像这样:

            mean_values
dates
2019-03-08 2.5
2019-03-13 6.0

换句话说,将函数应用于 is_new_bucket = 0 的连续行,它将 bucket_value 作为输入。

例如,如果我想应用 max 函数,生成的数据帧将如下所示:

            max_values
dates
2019-03-11 4.0
2019-03-13 6.0

最佳答案

cumsumfilter结合使用

df.reset_index(inplace=True)
s=df.loc[df.is_new_bucket==0].groupby(df.is_new_bucket.cumsum()).agg({'date':'first','bucket_value':['mean','max']})
s
date bucket_value
first mean max
is_new_bucket
1 2019-03-08 2.5 4
2 2019-03-13 6.0 6

已更新

df.loc[df.loc[df.is_new_bucket==0].groupby(df.is_new_bucket.cumsum())['bucket_value'].idxmax()]
date bucket_value is_new_bucket
4 2019-03-11 4 0
6 2019-03-13 6 0

更新2使用cumsum创建组 key Newkey后,您可以根据组 key 做任何您需要的事情

df['Newkey']=df.is_new_bucket.cumsum()
df
date bucket_value is_new_bucket Newkey
0 2019-03-07 0 1 1
1 2019-03-08 1 0 1
2 2019-03-09 2 0 1
3 2019-03-10 3 0 1
4 2019-03-11 4 0 1
5 2019-03-12 5 1 2
6 2019-03-13 6 0 2
7 2019-03-14 7 1 3

关于python - 将函数应用于一系列特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55035424/

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