如何识别每个 id 的不完整详细信息?

我有以下数据框:


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"

我需要这样的东西,


预期数据框:

https://img4.mukewang.com/650023ab0001ade605190380.jpg

请注意,该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)

上述代码的输出:

https://img1.mukewang.com/650023b700011dd303090135.jpg

https://img2.mukewang.com/650023bd0001fe2502900127.jpg

通过使用上面的代码,我能够捕获 emp_id,该 ID 分别在男性和女性列中缺少详细信息。

有没有其他方法可以一次比较两列(男性和女性)并表示 Var 列中缺失的详细信息。

所以请让我知道解决方案:

提前致谢!


SMILET
浏览 86回答 1
1回答

有只小跳蛙

尝试这个:df['var']  =  (df.male + df.female).groupby(df.emp_id).transform('min')In [39]: dfOut[39]:    emp_id  male  female      Month_Year  var0      423     0       0      March-2016    01      423     0       0      April-2016    02      423     0       1        May-2016    03      423     0       1       June-2016    04      789     1       0       June-2017    05      789     1       0       July-2017    06      789     1       0     August-2017    07      789     0       0  September-2017    08      856     1       0      March-2018    19      856     1       0      April-2018    110     987     0       1       June-2019    111     987     0       1       July-2019    112     987     0       1     August-2019    1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python