繁体   English   中英

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

[英]How to extract entire part of string after certain character in dataframe column?

我正在使用下面的代码来提取最后一个pandas dataframe列名。

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'

我想在.value.之后取整个数字.value. 如在IF声明中。 在上面的IF语句中如何做到这一点?

使用str.split ,并使用-1提取最后一个切片(也正常处理错误情况):

df = pd.DataFrame(columns=[
    'data.answers.1234567890.value.0987654321', 'blahblah.value.12345', 'foo'])    

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

另一种方法是在listcomp中拆分:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM