我有两个dataframes:
x y
df1<- 1.0 5.31
0.9 4.22
0.1 4.57
x y
df2<- 1.3 4.71
0.3 4.54
df1可以被视为比DF2更高的层(即"上帝层" dataframe或"头等舱")。我想首先对DF1的X列值进行排名,使用下面的代码很容易。
输入:
df1['rank'] = df1['x'].rank(ascending=False)
输出:
x y rank
df1<- 1.0 5.31 1
0.9 4.22 2
0.1 4.57 3
但是,这是我在弄清楚如何做的下一部分...
然后,i想要对DF2的X列进行排名(即"下层"数据框或"第二类"),从DF1的等级值继续进行以下输出:
x y rank
df2<- 1.3 4.71 4
0.3 4.54 5
(即,DF2的最大X值将被排名为DF1的最低X值 - 即使DF2的X值大于DF1中的X值)。
关于如何实现这一目标的任何想法?
我认为最简单的是 df1
中的 rank
的最大值:
df2['rank'] = df2['x'].rank(ascending=False) + df1['rank'].max()
print (df2)
x y rank
0 1.3 4.71 4.0
1 0.3 4.54 5.0