Pandas - 使用模式/正则表达式编辑索引
Posted
技术标签:
【中文标题】Pandas - 使用模式/正则表达式编辑索引【英文标题】:Pandas - Edit Index using pattern / regex 【发布时间】:2014-09-05 01:03:24 【问题描述】:给定一个像这样的数据框:
>>> df
ix val1 val2 val3 val4
1.31 2 3 4 5
8.22 2 3 4 5
5.39 2 3 4 5
7.34 2 3 4 5
是否可以使用replace 之类的东西来编辑索引?
伪代码:(因为df索引没有str属性)
df.index=df.index.str.replace("\\.[0-9]*","")
我需要类似的东西:
>>> df
ix val1 val2 val3 val4
1 2 3 4 5
8 2 3 4 5
5 2 3 4 5
7 2 3 4 5
问题是我的数据框很大。
提前致谢
【问题讨论】:
【参考方案1】:你可以这样做:
df.index = df.index.to_series().astype(str).str.replace(r'\.[0-9]*','').astype(int)
你也可以使用.extract
:
df.index.to_series().astype(str).str.extract(r'(\d+)').astype(int)
或者,您也可以只使用map
指向int
的索引:
pd.Index(map(int, df.index))
【讨论】:
谢谢 behzad.nouri。那完成了工作!以上是关于Pandas - 使用模式/正则表达式编辑索引的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式在多个模式之前找到一个数字序列,放入一个新列(Python,Pandas)
pandas使用replace函数和正则表达式移除dataframe字符串数据列中尾部指定模式字符串(Removing trailing substring in dataframe)