- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有这个数据框:
dic = {'users' : ['A','A','B','A','A','B','A','A','A','A','A','B','A'],
'product' : [1,1,2,2,1,2,1,2,1,1,2,1,1],
'action' : ['see', 'see', 'see', 'see', 'buy', 'buy', 'see', 'see', 'see', 'see', 'buy', 'buy', 'buy']
}
df = pd.DataFrame(dic, columns=dic.keys())
df
users product action
0 A 1 see
1 A 1 see
2 B 2 see
3 A 2 see
4 A 1 buy
5 B 2 buy
6 A 1 see
7 A 2 see
8 A 1 see
9 A 1 see
10 A 2 buy
11 B 1 buy
12 A 1 buy
我需要的是一个列,用于计算每个用户在购买产品之前看到产品的次数。
结果应该是这样的:
dic = {'users' : ['A','A','B','A','A','B','A','A','A','A','A','B','A'],
'product' : [1,1,2,2,1,2,1,2,1,1,2,1,1],
'action' : ['see', 'see', 'see', 'see', 'buy', 'buy', 'see', 'see', 'see', 'see', 'buy', 'buy', 'buy'],
'see_before_buy' : [1,2,1,1,2,1,1,2,2,3,2,0,3]
}
users product action see_before_buy
0 A 1 see 1
1 A 1 see 2
2 B 2 see 1
3 A 2 see 1
4 A 1 buy 2
5 B 2 buy 1
6 A 1 see 1
7 A 2 see 2
8 A 1 see 2
9 A 1 see 3
10 A 2 buy 2
11 B 1 buy 0
12 A 1 buy 3
有人能帮帮我吗?
最佳答案
您可能需要在 shift
cumsum
为
groupby
创建一个附加键
addkey=df.groupby(['user','#product']).action.apply(lambda x : x.eq('buy').shift().fillna(0).cumsum())
df['seebefore']=df.action.eq('see').groupby([df.user,df['#product'],addkey]).cumsum()
df
Out[131]:
index user #product action seebefore
0 0 A 1 see 1.0
1 1 A 1 see 2.0
2 2 B 2 see 1.0
3 3 A 2 see 1.0
4 4 A 1 buy 2.0
5 5 B 2 buy 1.0
6 6 A 1 see 1.0
7 7 A 2 see 2.0
8 8 A 1 see 2.0
9 9 A 1 see 3.0
10 10 A 2 buy 2.0
11 11 B 1 buy 0.0
12 12 A 1 buy 3.0
关于python - 有条件的 groupby CumCount pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52250345/
我想要一个新的列( not_ordered_in_STREET_x_before_my_car ),它计算我的 Dataframe 中的 None 值,直到我所在的行,按 x 分组,按 x 和 y 排
当前正在尝试将我从 Pandas 制作的脚本转换为pyspark,我有一个数据框,其中包含以下形式的数据: index | letter ------|------- 0 | a 1
我创建一个数据框 df = pd.DataFrame({"b": ['A','A','A','A','B', 'B','B','C','C','D','D', 'D','D','D','D','D',
我有一个看起来像这样的 df: ID Component IDDate EmployeeID CreateUserID 24 1 2017-09-1
我有一个包含名称和日期的数据框。我想创建一个计数列,它只会在日期不同时递增。请看下面第三栏: Name Date COLUMN I NEED ---- ----
阿罗哈, 我有以下数据框 stores = [1,2,3,4,5] weeks = [1,1,1,1,1] df = pd.DataFrame({'Stores' : stores,
我有这个数据框: dic = {'users' : ['A','A','B','A','A','B','A','A','A','A','A','B','A'], 'pr
考虑数据框 df = pd.DataFrame( [ ['A', 1], ['A', 1], ['B', 1], ['B', 0
这是我拥有的数据: ID Vehicle Calculator Offer NextCalculator NextOffer 3497827 2002 For
我有一个如下所示的 df: df = pd.DataFrame({"child": ["A", "B", "C", "D", "E", "D", "A"],
我有一个看起来像这样的数据框 ID ..... config_name config_version ... aa A 0
我有一个 DataFrame,我按 Internal Score 和 Issue Date(按季度)分组。然后我想创建一个统计表,其中包括贷款数量的累计计数(由 Loan # 的不同计数表示)、贷款金
我想添加一列(标题为“acc_dates”),该列将给出带有日期时间索引的数据框中日期的增加计数。这是一个例子: import pandas as pd import datetime as dt d
我是一名优秀的程序员,十分优秀!