删除列名中的字符
Posted
技术标签:
【中文标题】删除列名中的字符【英文标题】:to delete characters in column names 【发布时间】:2016-04-09 12:00:54 【问题描述】:我有以下数据例如
Ind var1_1 var2_2 var3_1 var4_2.......var100_1
1 0 0 2 1 0
2 2 0 1 0 2
我想重命名后面没有两个字符的列,如下所示
Ind var1 var2 var3 var4.......var100
1 0 0 2 1 0
2 2 0 1 0 2
【问题讨论】:
【参考方案1】:我们可以使用sub
。我们将模式 _
后跟一个或多个数字 (\\d+
) 匹配到字符串的末尾 ($
) 并替换为 ''
。
names(df) <- sub('_\\d+$', '', names(df))
或者正如@David Arenburg 提到的,它可以是_
之后的任何字符(.*
)中的一个或多个(将匹配var1_1
、var1_d3533
等模式)
names(df) sub("_.*", "", df)
或者我们使用paste
(@jogo 的评论)
names(df) <- c("Ind", paste0("var", 1:100))
【讨论】:
在这种情况下你可以只做sub("_.*", "", x)
或names(df) <- c("Ind", paste0("var", 1:100))
以上是关于删除列名中的字符的主要内容,如果未能解决你的问题,请参考以下文章
Pandas批量删除dataframe列名中的后缀实战:使用rstrip函数批量删除列名中的后缀(suffix)使用replace函数批量删除列名中的后缀(suffix)
Pandas批量删除dataframe列名中的前缀实战:使用lstrip函数批量删除列名中的前缀(prefix)使用replace函数批量删除列名中的前缀(prefix)