熊猫是多列条件

时间:2019-03-24 09:17:18

标签: pandas if-statement contains

我有一个数据框

col1    col2    col3    col4
A         F      F      F
B         F      A      B
C         B      A      C
D         S      A      F

我想说是否在这些列中的A和F处添加一个新列并输入“找到”

col1    col2    col3    col4   output
A         F      F      F        Found
B         F      A      B        Found
C         B      A      C           0
D         S      A      F        Found

3 个答案:

答案 0 :(得分:3)

使用:

df['output']=np.where(df.eq('A').any(1) & df.eq('F').any(1),'Found',0)

另一种方法:

df['output']=(df.eq('A').any(1) & df.eq('F').any(1)).map({True:'Found',False:0})

输出:

  col1 col2 col3 col4 output
0    A    F    F    F  Found
1    B    F    A    B  Found
2    C    B    A    C      0
3    D    S    A    F  Found

答案 1 :(得分:1)

尝试一下:

df.loc[df.apply(lambda x: ((x=='F').any() & (x=='A').any()).any(),axis=1), 'output'] = 'Found'

df.fillna(0)

答案 2 :(得分:0)

您可以使用pd.DataFrame.where():

git log --all --diff-filter=D --name-only --pretty=format:'' master..super-feature | sort | uniq