Seu*_*ung 2 python duplicates pandas
假设我们有以下数据框:
group id performance
0 exp A 1
1 exp B 2
2 exp B 3
3 exp C 4
4 control A 5
5 control A 6
6 exp D 7
7 control D 8
Run Code Online (Sandbox Code Playgroud)
仅提取行以便在“ exp”和“ control” 中都存在至少一个“ id”的Python代码是什么?
以下是所需的输出:
group id performance
0 exp A 1
4 control A 5
5 control A 6
6 exp D 7
7 control D 8
Run Code Online (Sandbox Code Playgroud)
以下代码用于创建此数据框:
students = [('exp', 'A', 1),
('exp', 'B', 2),
('exp', 'B', 3),
('exp', 'C', 4),
('control', 'A', 5),
('control', 'A', 6),
('exp', 'D', 7),
('control', 'D', 8)
]
import pandas as pd
student_df = pd.DataFrame(students, columns=['group', 'id', 'performance'])
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码,但它仅无条件地提取“ id”中的所有重复项。我的猜测是添加一个if语句?
student_df[student_df.duplicated(['id'], keep = False)]
Run Code Online (Sandbox Code Playgroud)
尝试这个。根据您的样本数据列,group
该列只有2个值,exp
并且control
:
df_out = student_df.groupby('id').filter(lambda x: x.group.nunique() > 1)
Out[570]:
group id performance
0 exp A 1
4 control A 5
5 control A 6
6 exp D 7
7 control D 8
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
48 次 |
最近记录: |