gpt4 book ai didi

python - 使用 Loop 根据数据中的条件修改 Pandas Dataframe

转载 作者:太空宇宙 更新时间:2023-11-04 05:29:59 26 4
gpt4 key购买 nike

如果我的数据框是这样的

z = {
'Cust': ["a", "a", "a", "a", "a", "b", "b", "b", "b", "c", "d"],
'datediff': [1, 3, 9, 26, 30, 1, 2, 7, 10, 5, 7],
'row_number': [1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 1],
'Referer': ["URL1", "URL2", "URL2", "URL1", "URL1", "URL3", "URL1", "URL1",
"URL1", "URL1", "URL1"]
}

df1 = pd.DataFrame(z)

row_number 标记了每个客户(来自SQL 处理后的数据)中排序的日订单的顺序,SQL 只返回与上一次访问(记录)的Datediff。 (如果需要,我可以添加日期列)

我需要将每个客户访问的第一个 URL(派生列)填充到它下面的所有行(直到 row_number 恢复为 1,标记另一个客户)。

这将允许我使用 DF3_derived.groupby(['Referer']).['datediff' .mean()

我不知道如何仅使用 normal[][boolean condition] 来做到这一点,所以也许最好使用循环读取 dataframe1、修改它并保存到 dataframe2?

基本上(使用 Excel 术语)从上面的行获取值,但如果遇到标记另一个开始的标志则跳过! Excel公式中d2=if(b2>b1,A1,A2),然后把公式往下拉!

最佳答案

如果我没理解错的话,你可以使用 groupby()transform('first') 结合使用:

In [7]: df1.Referer = df1.groupby(['Cust'])['Referer'].transform('first')

In [8]: df1
Out[8]:
Cust Referer datediff row_number
0 a URL1 1 1
1 a URL1 3 2
2 a URL1 9 3
3 a URL1 26 4
4 a URL1 30 5
5 b URL3 1 1
6 b URL3 2 2
7 b URL3 7 3
8 b URL3 10 4
9 c URL1 5 1
10 d URL1 7 1

关于python - 使用 Loop 根据数据中的条件修改 Pandas Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37417865/

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