对于数据获取,公司在过去 3 年中的参与者人数增加 Pandas
For data get the Companies have increasing no of participants in last 3 years in Pandas
下面是给出的数据。
year Company/Account Name participants
2019 Willis Towers Watson 418
2020 Willis Towers Watson 568
2021 Willis Towers Watson 57
2019 White Plains Hospital 1904
2020 White Plains Hospital 742
2021 White Plains Hospital 3710
2019 Westchester Flying Club 310
2020 Westchester Flying Club 463
2021 Westchester Flying Club 562
2019 Us Open 282
2020 Us Open 742
2021 Us Open 812
2019 Upledger Institute 625
2020 Upledger Institute 49
2021 Upledger Institute 152
输出应该是
威彻斯特飞行俱乐部
美国公开赛
以上两家公司在过去三年的参与人数都在增加。
数据:
{'year': [2019, 2020, 2021, 2019, 2020, 2021, 2019, 2020,
2021, 2019, 2020, 2021, 2019, 2020, 2021],
'Company/Account Name': ['Willis Towers Watson', 'Willis Towers Watson',
'Willis Towers Watson', 'White Plains Hospital',
'White Plains Hospital', 'White Plains Hospital',
'Westchester Flying Club', 'Westchester Flying Club',
'Westchester Flying Club', 'Us Open', 'Us Open',
'Us Open', 'Upledger Institute', 'Upledger Institute',
'Upledger Institute'],
'participants': [418, 568, 57, 1904, 742, 3710, 310,
463, 562, 282, 742, 812, 625, 49, 152]}
我们可以 groupby
+ diff
+ gt
得到一个布尔系列,如果参与者比上一年增加,则该系列可能 returns 为真,否则为假。然后使用 groupby
+ all
构建一个掩码来过滤参与度每年都在增加的公司。
最后,使用掩码过滤相关公司:
s = (df.groupby('Company/Account Name')['participants'].diff().fillna(0.1).gt(0)
.groupby(df['Company/Account Name']).all())
out = s.index[s].tolist()
除了执行 2 groupby
s,我们还可以 apply
执行相同工作的 lambda:
s = df.groupby('Company/Account Name')['participants'].apply(lambda x: x.diff().dropna().gt(0).all())
输出:
['Us Open', 'Westchester Flying Club']
下面是给出的数据。
year Company/Account Name participants
2019 Willis Towers Watson 418
2020 Willis Towers Watson 568
2021 Willis Towers Watson 57
2019 White Plains Hospital 1904
2020 White Plains Hospital 742
2021 White Plains Hospital 3710
2019 Westchester Flying Club 310
2020 Westchester Flying Club 463
2021 Westchester Flying Club 562
2019 Us Open 282
2020 Us Open 742
2021 Us Open 812
2019 Upledger Institute 625
2020 Upledger Institute 49
2021 Upledger Institute 152
输出应该是
威彻斯特飞行俱乐部
美国公开赛
以上两家公司在过去三年的参与人数都在增加。
数据:
{'year': [2019, 2020, 2021, 2019, 2020, 2021, 2019, 2020,
2021, 2019, 2020, 2021, 2019, 2020, 2021],
'Company/Account Name': ['Willis Towers Watson', 'Willis Towers Watson',
'Willis Towers Watson', 'White Plains Hospital',
'White Plains Hospital', 'White Plains Hospital',
'Westchester Flying Club', 'Westchester Flying Club',
'Westchester Flying Club', 'Us Open', 'Us Open',
'Us Open', 'Upledger Institute', 'Upledger Institute',
'Upledger Institute'],
'participants': [418, 568, 57, 1904, 742, 3710, 310,
463, 562, 282, 742, 812, 625, 49, 152]}
我们可以 groupby
+ diff
+ gt
得到一个布尔系列,如果参与者比上一年增加,则该系列可能 returns 为真,否则为假。然后使用 groupby
+ all
构建一个掩码来过滤参与度每年都在增加的公司。
最后,使用掩码过滤相关公司:
s = (df.groupby('Company/Account Name')['participants'].diff().fillna(0.1).gt(0)
.groupby(df['Company/Account Name']).all())
out = s.index[s].tolist()
除了执行 2 groupby
s,我们还可以 apply
执行相同工作的 lambda:
s = df.groupby('Company/Account Name')['participants'].apply(lambda x: x.diff().dropna().gt(0).all())
输出:
['Us Open', 'Westchester Flying Club']