比较两个不同的熊猫列中的值

时间:2020-02-06 19:54:12

标签: python-3.x pandas

我有一个看起来像这样的数据框:

Fruit   Cost    Quantity    Fruit_Copy
Apple   0.5 6   Watermelon
Orange  0.3 2   Orange
Apple   0.5 8   Apple
Apple   0.5 7   Apple
Banana  0.25    8   Banana
Banana  0.25    7   Banana
Apple   0.5 6   Apple
Apple   0.5 3   Apple

我想编写一个片段,以大熊猫为例,比较Fruit和Fruit_Copy并输出一个新的“ Match”列,该列指示水果中的值是否= Fruit_Copy。

谢谢!

3 个答案:

答案 0 :(得分:2)

可以说您的数据框是“水果”。然后,您可以将Pandas系列等于函数pd.Series.eq用作

fruits['Match'] = pd.Series.eq(fruits['Fruit'],fruits['Fruit_Copy'])

答案 1 :(得分:1)

类似的事情会起作用。

df.loc[df['Fruit'] == df['Fruit_Copy'], 'Match'] = 'Yes'

使用numpy.where:

df['Match'] = np.where(df['Fruit'] == df['Fruit_Copy'], 'Yes', 'No')

答案 2 :(得分:0)

您可以尝试这样的事情:

import pandas as pd
import numpy as np

fruits = pd.DataFrame({'Fruit':['Apple', 'Orange', 'Apple', 'Apple', 'Banana', 'Banana', 'Apple', 'Apple'], 'Cost':[0.5,0.3,0.5,0.5,0.25,0.25,0.5,0.5], 'Quantity':[6,2,8,7,8,7,6,3], 'Fruit_Copy':['Watermelon', 'Orange', 'Apple', 'Apple', 'Banana', 'Banana', 'Apple', 'Apple']})
fruits['Match'] = np.where(fruits['Fruit'] == fruits['Fruit_Copy'], 1, 0)
fruits

    Fruit  Cost  Quantity  Fruit_Copy  Match
0   Apple  0.50         6  Watermelon      0
1  Orange  0.30         2      Orange      1
2   Apple  0.50         8       Apple      1
3   Apple  0.50         7       Apple      1
4  Banana  0.25         8      Banana      1
5  Banana  0.25         7      Banana      1
6   Apple  0.50         6       Apple      1
7   Apple  0.50         3       Apple      1