如何在Pandas中移除索引中的连字符及右侧上限值?
解决Pandas索引移除连字符及右侧数值的问题
没问题,这个需求很好实现,咱们用Pandas自带的字符串处理方法就能轻松搞定。下面给你两种简单的方案,你可以根据习惯选:
方法一:用str.split()分割索引
咱们可以把索引字符串按-分割,只保留分割后的第一个部分作为新索引:
import pandas as pd # 先构造你的目标DataFrame df = pd.DataFrame({'A': [1, 2, 3, 4]}, index=['0-1.5', '1.5-3.3', '3.3-5.4', '5.4-7.9']) # 处理索引:按'-'分割后取第一部分 df.index = df.index.str.split('-').str[0] print(df)
运行后就能得到你想要的结果:
A 0 1 1.5 2 3.3 3 5.4 4
方法二:用str.extract()提取匹配内容
如果你习惯用正则表达式,可以直接提取-左侧的所有内容:
# 用正则提取开头到第一个'-'前的内容 df.index = df.index.str.extract(r'^(.*?)-', expand=False)
这里的正则^(.*?)-表示从字符串开头开始,匹配到第一个-为止的所有内容,expand=False确保返回的是Series格式,刚好能直接替换原索引。
两种方法都能达成目标,如果你的索引格式是统一的数值-数值,第一种方法更直观;如果以后索引格式有变化,正则的方法会更灵活。
内容的提问来源于stack exchange,提问作者Jeroen
相关产品推荐
相关产品推荐

