我有以下数据框:
emp_id male female Month_Year
423 0 0 March-2016
423 0 0 April-2016
423 0 1 May-2016
423 0 1 June-2016
789 1 0 June-2017
789 1 0 July-2017
789 1 0 August-2017
789 0 0 September-2017
856 1 0 March-2018
856 1 0 April-2018
987 0 1 June-2019
987 0 1 July-2019
987 0 1 August-2019
请注意列中的值male,female如下所示:
1 - "Yes"
0 - "No"
我需要这样的东西,
预期数据框:
请注意,该Var列中的值表示如下:
1 - "the gender details are not missing"
0 - "the gender details are missing"
另请注意,一个 emp_id 可以是男性或女性,但不能同时是男性或女性。
male如果在和列中观察到female,
对于emp_id 423,前两行没有性别详细信息。所以我在 Var 列中将值指定为零。
对于emp_id 789,最后一行缺少性别详细信息。所以我在 Var 列中提到了零。
对于emp_id 856 and 987,特定时期内的性别详细信息不会丢失。所以我在 Var 列中给出了价值 1。
我使用了下面的代码:
mask = (df.assign(zeros=df['male'].eq(0))
.groupby('emp_id')[['male', 'zeros']]
.transform('sum')
.all(axis=1))
df1 = df[mask]
print (df1)
mask = (df.assign(zeros=df['female'].eq(0))
.groupby('emp_id')[['female', 'zeros']]
.transform('sum')
.all(axis=1))
df2 = df[mask]
print (df2)
上述代码的输出:
通过使用上面的代码,我能够捕获 emp_id,该 ID 分别在男性和女性列中缺少详细信息。
有没有其他方法可以一次比较两列(男性和女性)并表示 Var 列中缺失的详细信息。
所以请让我知道解决方案:
提前致谢!
有只小跳蛙
相关分类