You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas重塑DataFrame?提取含冒号单元格值生成新DataFrame

嘿,这个需求我平时处理数据时经常遇到,用 Pandas 就能高效解决!核心思路就是遍历每个单元格,提取最后一个冒号后面的内容,不管单元格里有多少个冒号,只取最末尾那部分。下面给你两种实用的实现方式:

方法一:自定义函数 + applymap(直观易理解)

这种方式逻辑清晰,适合新手或者需要灵活调整规则的场景:

import pandas as pd
import numpy as np

def get_last_colon_content(cell):
    # 先判断单元格是否为字符串且包含冒号
    if isinstance(cell, str) and ':' in cell:
        # 按冒号分割后取最后一段,再去掉可能的空格
        return cell.split(':')[-1].strip()
    # 没有冒号或非字符串的情况,返回原内容(也可以换成return np.nan过滤掉)
    return cell

# 假设你的原始DataFrame名为df,生成新DataFrame
new_df = df.applymap(get_last_colon_content)

方法二:正则表达式 + apply(简洁高效)

如果熟悉正则,用str.extract会更简洁,专门针对字符串列处理:

import pandas as pd

# 用正则匹配最后一个冒号后的所有非冒号字符,无匹配则保留原内容
new_df = df.apply(lambda col: col.str.extract(r':([^:]+)$', expand=False).fillna(col))

正则表达式r':([^:]+)$'的意思是:匹配末尾的冒号,捕获后面所有不是冒号的字符,完美对应你要的“取最后冒号后的值”的需求。

两种方法都能快速生成你想要的新DataFrame,根据自己的习惯选就行~

内容的提问来源于stack exchange,提问作者Rui Huang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:38:32