[英]python pandas time series count number of previous matches
鑒於:
applications = pd.DataFrame({'application_id': [1, 2, 3, 4, 5],
'date': ['2015-01-05', '2015-01-06', '2015-01-07', '2015- 01-08', '2015-01-09'],
'client_employer': ['company A', 'company B', 'company C', 'company A', 'company B'],
'client_name': ['Bill', 'John', 'Steve', 'Bill', 'Alex']})
表:
date client_employer client_name
0 2015-01-05 company A John
1 2015-01-06 company B Bill
2 2015-01-07 company B Bill
3 2015-01-08 company A Sarah
4 2015-01-09 company B Alex
5 2015-01-10 company B Brian
我們過去有多少位同一雇主的不同人? 沒有圈
所需的輸出:
date client_employer client_name employers_count
0 2015-01-05 company A John 0
1 2015-01-06 company B Bill 0
2 2015-01-07 company B Bill 0
3 2015-01-08 company A Sarah 1
4 2015-01-09 company B Alex 1
5 2015-01-10 company B Brian 2
applications = pd.DataFrame({'application_id': [1, 2, 3, 4, 5, 6],
'date': ['2015-01-05', '2015-01-06', '2015-01-07', '2015-01-08', '2015-01-09', '2015-01-10'],
'client_employer': ['company B', 'company B', 'company B', 'company B', 'company B', 'company B'],
'client_name': ['Bill', 'John', 'Steve', 'Bill', 'Alex', 'Bill'],
'cnt_desired': [0, 1, 2, 2, 3, 3]})
emp_count = applications.groupby(['client_employer'])['client_name'].transform(lambda x: x.map(dict(zip(x.unique(),np.arange(len(x.unique()))))))
applications['cnt'] = emp_count
application_id date client_employer client_name cnt_desired cnt
0 1 2015-01-05 company B Bill 0 0
1 2 2015-01-06 company B John 1 1
2 3 2015-01-07 company B Steve 2 2
3 4 2015-01-08 company B Bill 2 0
4 5 2015-01-09 company B Alex 3 3
5 6 2015-01-10 company B Bill 3 0
首先在client_employer
上使用groupby
,然后訪問client_name
列,並使用基於client_name
唯一值的dict
作為鍵並將唯一值數量range
作為值創建的map
轉換列:
df['employers_count'] = df.groupby(['client_employer'])['client_name'].transform(lambda x: x.map(dict(zip(x.unique(),range(x.nunique())))))
date client_employer client_name employers_count
0 2015-01-05 company A John 0
1 2015-01-06 company B Bill 0
2 2015-01-07 company B Bill 0
3 2015-01-08 company A Sarah 1
4 2015-01-09 company B Alex 1
5 2015-01-10 company B Brian 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.