Python 如何提取dataframe列中某个字符后的整个字符串部分?

Python 如何提取dataframe列中某个字符后的整个字符串部分?,python,python-3.x,string,pandas,Python,Python 3.x,String,Pandas,我正在使用下面的代码提取熊猫数据框列名的最后数目 names = df.columns.values new_df = pd.DataFrame() for name in names: if ('.value.' in name) and df[name][0]: last_number = int(name[-1]) print(last_number) key, value = my_dict[last_number]

我正在使用下面的代码提取熊猫数据框列名的最后数目

names = df.columns.values
new_df = pd.DataFrame()
for name in names:    
    if ('.value.' in name) and df[name][0]:
        last_number = int(name[-1])
        print(last_number)
        key, value = my_dict[last_number]
        try:
            new_df[value][0] = list(new_df[value][0]) + [key]
        except:
            new_df[value] = [key]
name
是一个如下所示的字符串:

'data.answers.1234567890.value.0987654321'

我想在
值之后取整数。
IF
语句中的一样。在上面的
IF
语句中,如何实现这一点

使用
str.split
,并使用
-1
提取最后一个片段(还可以优雅地处理错误情况):


另一种选择是在listcomp内拆分:

df.columns = [x.split('value.')[-1] for x in df.columns]
df.columns
# Index(['0987654321', '12345', 'foo'], dtype='object')
df.columns = df.columns.str.split('value.').str[-1]
df.columns
# Index(['0987654321', '12345', 'foo'], dtype='object')
df.columns = [x.split('value.')[-1] for x in df.columns]
df.columns
# Index(['0987654321', '12345', 'foo'], dtype='object')