如何根据从列中获取的字符串变量对数据框的列进行排序

贾洪吉尔·阿利贾诺夫

我想根据另一个数据框的列中给出的文本变量对数据框的列进行排序(使用srtcolorder来自data.table)。比方说,我有第一个数据框(df1)列命名和排序为“五”、“二”、“三”、“一”、“四”,并且有另一个df2$names包含字符串变量的列 ( ) 的数据框排序为“一”、“二”、“三”、“四”、“五”。如何根据 中的变量对 df1 的列进行排序df2$names

我尝试使用setcolorder如下:

gf3<-setcolorder(df1, key=df2$names)

并收到错误消息

setcolorder(df1, key = df2$names) 中的错误:未使用的参数(key = df2$names)

本杰明叶

由于没有提供数据,我创建了虚拟数据框来模拟您尝试重新排列的数据。

第一个数据框 ,df1包含字符列five, two, three, one, 并按以下four顺序:

df1 <- data.frame(
  five = character(),
  two = character(),
  three = character(),
  one = character(),
  four = character()
)

第二个数据框df2包含一个单列names,其标题为列名,df1按它们的等价数字排序。

df2 <- data.frame(names = c('one', 'two', 'three', 'four', 'five'))

可以使用包含列索引或列名称的有序向量对数据框进行排序。在这种情况下,我们可以调用df1[, as.character(df2$names)]sortdf1的列。as.character()用于将df1列名的因子向量转换为字符串向量。

如果您热衷于使用data.table::setcolorder(),则可以setcolorder(df1, as.character(df2$names))改为致电这种方法的一个好处是您不必将结果数据框分配给变量df1您的尝试没有奏效,因为 (1) 没有keysetcolorder()函数的参数(只有neworder)并且 (2) 您df2$names可能是一个因子向量(您可以通过调用来检查class(df2$names))。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用python pandas根据特定的(字符串)列对数据框进行排序?

如何根据Python中列的字符串长度对数据框中的字符串进行切片?

如何根据两列中相似字符的数量对数据框进行排序?

R:如何对数据框列中的字符串进行子集化?

Python按绑定到字符串的整数对数据框列进行分组排序

Python - 如何对数据框中的日期字符串进行排序?

如何根据单个列对数据框中的唯一表进行排序?

如何根据列中的值对数据框的行进行重新排序

根据列表对列进行排序,然后对数据框中的另一列进行排序

根据子字符串对熊猫数据框列进行排序

根据字符串值列对熊猫数据框行进行排序

根据列均值对数据框的列进行重新排序

如何根据熊猫中另一个数据框中的列对数据框进行排序?

按字符串长度对数据框进行排序

在GroupBy之后根据特定列对数据框进行排序

根据列中值的前缀对数据框进行排序

根据列条件对数据框进行排序

根据多个列和条件对数据框进行排序

根据另一个定制顺序的列对数据框中的列对进行排序

根据列对数据框中的日期进行排序,并使用Pandas保持其他列的值

根据列的值和另一列中列表的长度对数据框进行排序

如果其中一列中有字符串,我们如何根据多个条件对数据框进行数字过滤?

如何根据变量中的逗号数对数据框进行排序

如何通过同时包含数字和字符串的列对熊猫数据框进行排序?

如何在对数据框进行排序后重新编号字符串

使用给定的字符串在python中对数据框进行排序或分组

使用matplotlib进行绘图时,根据数据框列中的字符串创建颜色图

如何使用python根据同一数据框中另一列的值对数据框中列中的值进行排序

按字符和日期列对数据框进行排序