如何修改每个名称重复的条件的数据框架



这是指示单个人是否具有可大写和不可大写合同的数据。我想将其按名称分组,并创建一个新列,告诉我他/她是否同时拥有合同和所有合同的总和。(它相当大)

tbody> <<tr>1245677
id name 大写字母 合同数量
1吉米3
吉米没有1
珍妮没有7
3Elle5
丹尼2
查尔斯1
弗雷迪没有3
Elle5
Elle没有3

使用聚合:

(df.groupby('id').agg({'Capitalization': lambda s: 'both' if len(set(s))==2 else s, 
'number of contracts': 'sum',
'name': 'first'}))

在这里,我假设Capitalization中唯一可能的值是"yes""no"。如果没有,请告诉我。

您可以随时更改lambda函数中的逻辑以适应更复杂的情况。


name Capitalization  number of contracts
id                                             
1     Jimmy           both                    4
2     Jenny             no                    7
3      Elle            yes                    5
4     Danny            yes                    2
5   Charles            yes                    1
6    Freddy             no                    3
7      Elle           both                    8

最新更新