为了账号安全,请及时绑定邮箱和手机立即绑定

如何确保 R 和 Python 脚本使用相同的排序规则?

如何确保 R 和 Python 脚本使用相同的排序规则?

慕姐8265434 2022-12-20 14:28:32
我将 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)

(不,不)


查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 63 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信