|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
问题背景:
数据是2010年的CFPS调研(中国家庭追踪调查)中的成人部分,源数据为stata文件,导入Python后变成了名为CFPS的数据框对象。
在原数据中没有直接问道“你是否为党员”,但有个变量(qa701)是“你的入党年份”,如果不是党员的话本题不适用,是党员会填一个1921年以后的年份。
题目要求:
设置一个新的变量,表示被访者是否为党员,党员为1,否则为0.
我的困惑:
我有两个方法,但前者正确,后者不对,请大神看一下我的两个代码之间的区别。
- def party(x):
- if x > 1921:
- return 1
- else:
- return 0
- CFPS.PartyDummy = CFPS.qa701.apply(party)
- ##############
- for i in list(CFPS.qa701):
- if i > 1921:
- CFPS.PartyYN = 1
- else:
- CFPS.PartyYN = 0
- # CFPS.qa701是一个Series,无论是否list()处理结果都不对
复制代码
试试:
- YN=[]
- for i in list(CFPS.qa701):
- YN.append(1 if i > 1921 else 0)
- CFPS.PartyYN = YN
复制代码
|
|