将一个数据框列中的值与同一df中的其他列中的值进行比较?

时间:2019-09-17 16:53:42

标签: python pandas

不是说英语的人, 我有一个df。可以说在df中的“ a”列中将“ apple”与c列中的其他“ apple”进行比较,并合并为df。

比较'a'列中的值(苹果),并将其与'c'列中的相同值(苹果)进行比较,并组合成df

df

                        a        b        c

                0       9        11       values

                1      apple     10       testcase

                2       8         8       apple

                3       7         7       apple

                4       6         6       test

                5       5         5       items

resultant_df

                        a         b        c

                0      apple     10       testcase

                1       8         8       apple

                2       7         7       apple

我试图比较并获得一个值,但无法获得所有值。

1 个答案:

答案 0 :(得分:1)

您可以使用boolean indexing

resultant_df=df[df[['a','c']].eq('apple').any(axis=1)]
resultant_df.reset_index(drop=True,inplace=True)
print(resultant_df)

       a   b         c
0  apple  10  testcase
1      8   8     apple
2      7   7     apple

说明:使用df[['a','c']].eq('apple').any(axis=1),您在包含apple的那些行中将得到一个具有True值的Serie。 Reset_index仅用于将索引重置为0,1,2 ...

df[['a','c']].eq('apple').any(axis=1)

0    False
1     True
2     True
3     True
4    False
5    False
dtype: bool

如果在所有列中还必须考虑'apple',则可以使用:

df.eq('apple').any(axis=1)