У меня есть следующий фрейм данных
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.Но SQL не скажет мне способа, если отдельные «12» сменили работодателя в период с 2001 по 2002 год.
Это то, что я до сих пор пробовал в python:
dic={}
listofUniqueYears= [i for i in newdf.year.unique()]
# даетя список уникальных лет
dic={}
for i in listofUniqueYears:
dic[i]=defaultdict(dict)
print(dic)
Мой вопрос заключается в том, как мне отфильтровать значения строк на основе условия, которое я поставляю, в этом сценарии я хочу, чтобы число сотрудников, количество и измененный сотрудник в год на одного работодателя.