Я должен использовать данные опроса ipums, чтобы получить среднее число безработных в два последовательных периода.Я написал функцию, которая использует индекс и фрейм данных в качестве входных данных,
def u1(x,df):
if df.loc[x]['LABFORCE']==2 and df.loc[x]['CPSIDP']==df.loc[x+1]['CPSIDP']:
if df.loc[x]['EMPSTAT']==21 or df.loc[x]['EMPSTAT']==22:
return True
else:
return False
, где x
- индекс, а df
- фрейм данных.CPSIDP
идентифицирует респондента, LABFORCE
проверяет, находится ли респондент в рабочей силе, а EMPSTAT
- это то, что мне нужно использовать для проверки статуса занятости респондента.
А затем я планировал использоватьapply
as
result= df.apply(u1, axis=1)
Не ясно, какие аргументы я должен передать в своей функции (и, пожалуйста, дайте мне знать, если этот подход просто философски неверен).Передача числа или переменной для индекса дает мне объект 'bool' - не вызываемая ошибка.
Наименьшее подмножество данных, которое генерирует ошибку (самый левый столбец - номер наблюдения, это x
, который мне нужно пройти через u1
):
YEAR MONTH CPSIDP EMPSTAT LABFORCE
15285896 2018 7 20180707096701 10 2
15285926 2018 7 20180707098301 10 2
15285927 2018 7 20180707098302 10 2
15285928 2018 7 20180707098303 0 0
15285929 2018 7 20180707098304 0 0
15285930 2018 7 20180707098305 10 2
15286095 2018 7 20180707108203 21 2