【发布时间】:2020-04-20 22:51:49
【问题描述】:
dept_ID Year_join salary present
1 ID1 2000 10000 0
2 ID1 2001 10000 0
3 ID1 2002 10000 0
4 ID1 2003 10000 0
5 ID1 2004 10000 1
6 ID2 2000 20000 0
7 ID2 2001 20000 1
8 ID2 2002 20000 0
9 ID3 2000 15000 1
10 ID1 2000 10000 0
11 ID1 2001 10000 0
12 ID1 2002 10000 0
13 ID1 2003 10000 0
14 ID1 2004 10000 0
15 ID2 2000 20000 1
16 ID2 2001 20000 0
17 ID2 2002 20000 0
18 ID3 2000 15000 0
19 ID1 2000 10000 1
20 ID1 2001 10000 0
我想要提取至少一次为 1 的所有部门 ID 的数据,如果我想要 500 个唯一的 dept_id 数据。 我已经尝试了下面的代码,但没有得到想要的输出。
dept_sub=df.dropna(subset=['dept_ID'])
df_1 = dept_sub[dept_sub['present'].isin(['1'])].copy()
s = df.groupby('dept_ID')['present'].nunique()
department = s.index[s.eq(1)].unique()
final_data = dept_sub[dept_sub['dept_ID'].isin(department)]
这是想要的输出
dept_ID Year_join salary present
1 ID1 2000 10000 0
2 ID1 2001 10000 0
3 ID1 2002 10000 0
4 ID1 2003 10000 0
5 ID1 2004 10000 1
6 ID2 2000 20000 0
7 ID2 2001 20000 1
8 ID2 2002 20000 0
9 ID3 2000 15000 1
10 ID1 2000 10000 0
11 ID1 2001 10000 0
12 ID1 2002 10000 0
13 ID1 2003 10000 0
14 ID1 2004 10000 0
16 ID2 2001 20000 0
17 ID2 2002 20000 0
18 ID3 2000 15000 0
20 ID1 2001 10000 0
这是 20 行的样本数据。实际上,我的数据集形状是 (500000,50) 我想提取所有 500 个 dept_id 的数据,其中包含至少一个当前值 ==1 并且该 dept_ID 的其余当前值 ==0
【问题讨论】:
-
给定输入的期望输出是什么?
-
@G. Anderson 我已经编辑了问题,您可以看到所需的输出