python - 如何在数据框列中的特定字符之后提取整个字符串部分?

标签 python python-3.x string pandas

我正在使用下面的代码提取 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]
        try:
            new_df[value][0] = list(new_df[value][0]) + [key]
        except:
            new_df[value] = [key]

name 是一个字符串,如下所示:

'data.answers.1234567890.value.0987654321'

我想在 .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')

关于python - 如何在数据框列中的特定字符之后提取整个字符串部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54084166/

相关文章:

Python SQL如何查找其他表中的不匹配项?

python - Python 如何读取 Ubuntu/Linux 中分离屏幕 session 的标准输出?

python - Python VM是否缓存不能自动释放的整数对象?

python - 查找 n 对数字之间的最大距离(在数字范围内)

python - 小行星程序使用间接绘制,glMultiDrawArraysIndirect不渲染并绘制空白

java - 如何在 Java 中对字符串数组(以名称与数字连接的形式)进行排序?

java - 如果 String 是不可变的,如果 String 常量池只有一个特定值的副本,下面的场景如何给出两个不同的输出

c# - 向后移植 C# 内插字符串运算符 $

python - 自动 Ansible 文档如何工作?

Python - 根据相同的键对字典列表中的值求和