我有一个与此类似的数据框,我的想法是根据向量my_order排列行,如下所示。
R 代码:
df = data.frame(A = c("apple","cherry","orange","banana"), B = c(25,37,15,28))
df
A B
1 apple 25
2 cherry 37
3 orange 15
4 banana 28
my_order = c(2,3,4,1)
dplyr::arrange(df,my_order)
A B
1 banana 28
2 apple 25
3 cherry 37
4 orange 15
我的问题是如何在 python 中执行此操作,pandas 中是否有等效的函数 dplyr::arrange()
?
Python 代码:
import pandas as pd
df = pd.DataFrame({'A': ["apple","cherry","orange","banana"], 'B': [25,37,15,28]})
print(df)
A B
0 apple 25
1 cherry 37
2 orange 15
3 banana 28
my_order = [1,2,3,0]
df.iloc[my_order]
A B
1 cherry 37
2 orange 15
3 banana 28
0 apple 25
最佳答案
好吧,我明白了。您正在将 argsorted 索引传递给 arrange
。您可以使用 iloc 执行相同的操作,但您必须对索引进行 argsort 才能获得其倒数。
my_order = [2,3,4,1]
df.iloc[pd.np.argsort(my_order)]
A B
3 banana 28
0 apple 25
1 cherry 37
2 orange 15
关于python - dplyr R 排列 pandas 中的等效函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54316586/