我有一个列有show的ticketID,(每个家庭成员使用相同的ticketID)我想创建一个新的cloumn,它是一个家庭大小,通过计算ticketID重复的次数。
ticketID
113796
2543
19950
382653
349211
3101297
PC 17562
113503
113503
答案 0 :(得分:3)
试试这个:
In [123]: df = pd.DataFrame({'ticketID':np.random.randint(0, 3, 5)})
In [124]: df
Out[124]:
ticketID
0 1
1 2
2 1
3 1
4 2
In [125]: df['family_size'] = df.ticketID.map(df.ticketID.value_counts())
In [126]: df
Out[126]:
ticketID family_size
0 1 3
1 2 2
2 1 3
3 1 3
4 2 2
答案 1 :(得分:1)
您可以使用transform
In [152]: df
Out[152]:
ticketID
0 1
1 2
2 1
3 1
4 2
In [153]: df['family_size'] = df.groupby('ticketID')['ticketID'].transform('size')
In [154]: df
Out[154]:
ticketID family_size
0 1 3
1 2 2
2 1 3
3 1 3
4 2 2