我必须使用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
作为
result= df.apply(u1, axis=1)
不清楚我应该在函数中传递什么参数(如果这种方法在哲学上是错误的,请告诉我)。为索引传递一个数字或变量会给我一个“bool”对象,这是不可调用的错误。你知道吗
生成错误的最小数据帧子集(最左边的列是观察值的数目,它是我需要通过的x
):
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
IIUC使用函数中的逻辑创建
boolean
Series
会更有效。你知道吗这里
&
是AND
运算符。你知道吗相关问题 更多 >
编程相关推荐