为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

SMILET 2023-09-12 16:38:26
我有以下数据框:emp_id  male    female   Month_Year423       0       0      March-2016423       0       0      April-2016 423       0       1      May-2016423       0       1      June-2016789       1       0      June-2017789       1       0      July-2017789       1       0      August-2017789       0       0      September-2017856       1       0      March-2018856       1       0      April-2018987       0       1      June-2019987       0       1      July-2019987       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 列中缺失的详细信息。所以请让我知道解决方案:提前致谢!
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

尝试这个:


df['var']  =  (df.male + df.female).groupby(df.emp_id).transform('min')


In [39]: df

Out[39]:

    emp_id  male  female      Month_Year  var

0      423     0       0      March-2016    0

1      423     0       0      April-2016    0

2      423     0       1        May-2016    0

3      423     0       1       June-2016    0

4      789     1       0       June-2017    0

5      789     1       0       July-2017    0

6      789     1       0     August-2017    0

7      789     0       0  September-2017    0

8      856     1       0      March-2018    1

9      856     1       0      April-2018    1

10     987     0       1       June-2019    1

11     987     0       1       July-2019    1

12     987     0       1     August-2019    1


查看完整回答
反对 回复 2023-09-12
  • 1 回答
  • 0 关注
  • 55 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信