Pandas基于另一列中的一行创建新列



我在pandas列中有以下类:已婚-民事配偶在场,从未结婚,已婚-配偶缺席,已婚-配偶在场,离婚,丧偶,分居。

在此基础上创建新列,其中(已婚-平民配偶在场,未婚,已婚-配偶缺席)将被替换为1,其余行被替换为0。

我试着遵循,但所有的行都被映射到0,没有一行被映射到1。

df_filtered['is_married'] = df_filtered['marital_status'].apply(lambda status: 1 if (status == "Married-civilian spouse present" or status == "Married-spouse absent" or status=="Married-A F spouse present") else 0 )                      

我想你可以用isin:

df_filtered['is_married'] = df_filtered['marital_status'].isin(['Married-civilian spouse present', 'Married-spouse absent', 'Married-A F spouse present']).astype(int)

最新更新