我將 R 3.6 與 dplyr 1.4.2 一起使用,將 Python 3.7 與 Pandas 1.0.3 一起使用。我需要確保我的 R 和 Python 腳本都能以相同的順序對相同的字符串向量進行排序。但是,在我的本地環境中情況并非如此:在 R 中:library(dplyr)df <- data.frame( x = c('abc(_01', 'aaa_05', 'abc_01', 'abc_01', 'abc_01', 'abc_01', NA, 'abc_01', 'abc_02', 'abc_02', 'abc_03'))df %>% arrange(x)生成: x1 aaa_052 abc_013 abc_014 abc_015 abc_016 abc_017 abc_028 abc_029 abc_0310 abc(_0111 NA在 Python 中:import pandas as pdimport numpy as npdf = pd.DataFrame({'x': ['abc(_01', 'aaa_05', 'abc_01', 'abc_01', 'abc_01', 'abc_01', np.nan, 'abc_01', 'abc_02', 'abc_02', 'abc_03']})df.sort_values(['x']).reset_index(drop=True)生成: x0 aaa_051 abc(_012 abc_013 abc_014 abc_015 abc_016 abc_017 abc_028 abc_029 abc_0310 NaN我相信這是由于 Python 和 R 使用不同的排序規則造成的。如果是這種情況,我如何配置兩種語言以使用相同的排序規則?
1 回答

白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
為了保證 Python 和 R shell 使用相同的排序規則,在創建數據幀之前設置相同的排序規則。
例如。:
在 R 中:
Sys.setlocale(category="LC_COLLATE", locale="C")
Sys.getlocale(category="LC_COLLATE")
[1] “丙”
在 Python 中:
import locale
locale.setlocale(locale.LC_COLLATE, "C")
locale.getlocale(locale.LC_COLLATE)
(不,不)
添加回答
舉報
0/150
提交
取消