替换熊猫索引对象中的字符串元素

Posted

技术标签:

【中文标题】替换熊猫索引对象中的字符串元素【英文标题】:Replace string elements in pandas Index object 【发布时间】:2019-01-08 01:28:49 【问题描述】:

我有一个非常简单的问题,但找不到答案。我有一个包含字符串('string_index')的熊猫索引对象。我想在这个字符串索引中替换某些元素,最好用字典来替换

 [In:] string_index
 [Out:] Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object')

 exchange_dict = 'A':'Y', 'B':'Z'

但是尝试

 string_index.rename(exchange_dict)

不起作用并且方法 .replace 是不可能的。我怎样才能做到这一点?

以此处获取 'string_index' 为例:

 string_list=['A', 'B', 'C', 'D', 'E', 'F']
 stringer = pd.DataFrame(string_list, index=string_list)
 string_index = stringer.index

请注意:“stringer_list”和“stringer”不是挑战的一部分,我只是为了给你一个工作示例而创建的。在我的真实示例中,我只有'string_index'。我想有一个非常简单的解决方案,我太笨了找不到?!

【问题讨论】:

【参考方案1】:

您需要在rename 中提及index

stringer.rename(index=exchange_dict)
Out[557]: 
   0
Y  A
Z  B
C  C
D  D
E  E
F  F

更新

pd.Index(string_index.to_series().replace(exchange_dict))
Out[570]: Index(['Y', 'Z', 'C', 'D', 'E', 'F'], dtype='object')

【讨论】:

请注意:我需要在“stringer_index”上执行此操作。 '纵梁' 不可用。我只在这里创建了一个工作示例。 谢谢!很棒,正如我所想的那样,通过一些辅助转换可能会很容易

以上是关于替换熊猫索引对象中的字符串元素的主要内容,如果未能解决你的问题,请参考以下文章

替换熊猫数据框中部分匹配字符串的列名

组合替换熊猫列中的字符串[重复]

用列/系列中的值替换熊猫子字符串

用熊猫中的自定义索引替换数字索引[重复]

如何过滤熊猫系列索引中的字符串

如何用熊猫列中的另一个字符串替换子字符串[关闭]