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