繁体   English   中英

根据第三列中的条件获取两个不同列的值

[英]Get values of two different columns based on a condition in a third column

我有一个特定的条件( Incident = yes ),我想知道满足这个条件的两列中的值。 我有一个非常大的数据框(多行多列),我正在寻找“筛选”功能。

df来说明以下示例(列数比显示的多得多):

Repetition  Step    Incident   Test1   Test2
1            1         no         10     20
1            1         no         9      11
1            2         yes        9      19
1            2         yes        11     20
1            2         yes        12     22
1            3         yes        9      18
1            3         yes        8      18

我想得到的答案是

Repetition   Step
1              2
1              3

如果我只想知道 Step,我会使用以下命令:

df[df.Incident == 'yes'].Step.unique()

是否有类似的命令来获取特定条件下两列的值?

谢谢您的帮助! :-)

您可以对条件使用查询选项,选择感兴趣的列,最后删除重复值

 df.query('Incident=="yes"').filter(['Repetition','Step']).drop_duplicates()

或者

您可以使用 Pandas 的loc方法,将行设置为条件,将列部分设置为您感兴趣的列,然后删除重复项。

df.loc[df.Incident=="yes",['Repetition','Step']].drop_duplicates()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM