大熊猫比较两个不同大小的列

时间:2017-07-10 19:24:08

标签: pandas dataframe

假设我们在两个数据帧中有两列,列相同但大小不同。我们如何比较两列并在两者中具有相同值的索引? df1和df2,age在两个中很常见,但是df1有1000行而df2有200行 - 我想让行的索引具有相同的年龄值?

1 个答案:

答案 0 :(得分:1)

您可以使用.loc进行索引标记:

df1.age < df2.loc[df1.index].age

示例:

df1 = pd.DataFrame({'age':np.random.randint(1,10,10)})

df2 = pd.DataFrame({'age':np.random.randint(1,10,20)})

输出:

0     True
1     True
2    False
3     True
4     True
5    False
6    False
7     True
8    False
9    False
Name: age, dtype: bool

在一个数据框中获取所有内容:

df1.assign(age_2=df2.loc[df1.index],cond=df1.age < df2.loc[df1.index].age)

输出:

   age  age_2   cond
0    3      5   True
1    3      8   True
2    6      6  False
3    4      7   True
4    4      7   True
5    5      2  False
6    2      2  False
7    3      7   True
8    6      3  False
9    5      4  False