我有以下数据框
import pandas as pd
newd = {'year': [2001, 2002, 2005, 2002, 2004, 2001, 2001, 2002, 2003, 2003, 2002, 2002, 2003, 2004, 2005, 2003, 2004, 2005, 2004, 2004 ],
'indviduals': [12, 23, 24, 28,30, 15, 17, 18, 18, 19, 12, 15, 12, 12, 12, 15, 15, 15, 12, 12],
'employers': ['a', 'b', 'c', 'd', 'e', 'a', 'a', 'b', 'b', 'c', 'b', 'a', 'c', 'd', 'e', 'a', 'a', 'a', 'a', 'b'] }
newdf=newdf=pd.DataFrame(newd)
我的预期结果(仅举一个例子):
2001, a: [12, 15, 17] count:3 employerchanged: []
2002, b: [12, 23, 28] count:3 employerchanged: [12]
2002, a: [15] count:1
在sql中完成此操作很容易。但是,如果2001年到2002年间,12个人更换了雇主,sql不会告诉我答案。
这就是我在python中所做的尝试:
dic={}
listofUniqueYears= [i for i in newdf.year.unique()]
#给我一张独特年份的清单
dic={}
for i in listofUniqueYears:
dic[i]=defaultdict(dict)
print(dic)
我的问题是如何根据我提供的条件筛选行值,在这种情况下,我希望每个雇主每年都有雇员数量、计数和更改的雇员。