我有两个数据帧:
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更高的等级(即&#34;上帝等级&#34;数据帧,或&#34;头等等&#34;)。我想首先对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
然而,接下来的部分是我很难搞清楚怎么做......
然后我要对df2的x列进行排名(即&#34;较低层&#34;数据帧,或&#34;第二类&#34;),继续从df1的等级值给出输出:
x y rank
df2<- 1.3 4.71 4
0.3 4.54 5
(即df2的最大x值将被排列为低于df1的最低x值 - 即使df2的x值大于df1中的x值)。
关于如何实现这一目标的任何想法?
答案 0 :(得分:1)
我认为最简单的是在rank
中添加df1
的最大值:
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