Pandas - Edit Index using pattern / regex

dataframe, pandas, python, regex

Solution

You can do:

df.index = df.index.to_series().astype(str).str.replace(r'\.[0-9]*','').astype(int)

you may also use `.extract`:

df.index.to_series().astype(str).str.extract(r'(\d+)').astype(int)

alternatively, you may just `map` the index to `int`:

pd.Index(map(int, df.index))

Problem

Given a data frame like: ``` >>> 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 ``` Is it possible to edit index using something like replace? Pseudo code: (since df index doesnt have str attribute) ``` df.index=df.index.str.replace("\\.[0-9]*","") ``` I need something like: ``` >>> 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 ``` The problem is that my dataframe is huge. Thanks in advance

Original source