python - dplyr R 排列 pandas 中的等效函数

标签 python pandas dplyr

我有一个与此类似的数据框,我的想法是根据向量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/

相关文章:

python-3.x - 如何用 Pandas 计算每一行的标准偏差?

python - 如何在pandas中处理这个逻辑

R从matriggr管道中的矩阵创建数据帧时给出列名

r - R 中的条件 elseif 语句

python - 为什么 python 中的列表操作在函数范围之外运行?

python - 如何监控 URL 的 GET 方法?

python - 删除两个时间序列中相同的异常值

python-3.x - Dataframe 融化并保留索引

r - 将特定列中每一行的值转换为该特定列中特定行的值的百分比

Python - 有没有办法绕过 'os.listdir()' 返回错误文件夹名称的乱码?