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

如何从DataFrame列提取最后一个interactionTime后的前19字符生成新列

提取DataFrame中JSON字符串列的最后一个interactionTime前19字符

方法一:字符串分割法(适配你的rsplit思路)

你之前用str.split返回全NaN是因为大小写不匹配:原字符串里是小写的interactionTime,你写的是大写开头的InteractionTime,自然匹配不到。调整分割逻辑,用更精准的分割符:

# 假设原列名为'json_col',替换成你实际的列名
df['Interaction Time'] = df['json_col'].str.rsplit('"interactionTime": "', 1).str[1].str[:19]
  • str.rsplit('"interactionTime": "', 1):从右侧仅分割一次,得到两部分,第二部分就是最后一个interactionTime对应的时间字符串起始部分
  • .str[1]取分割后的第二部分,再用.str[:19]截取前19个字符,正好是YYYY-MM-DD HH:MM:SS格式的目标时间

方法二:JSON解析法(更鲁可靠)

因为你的列内容是标准JSON数组,直接解析成Python对象再处理更稳妥,能避免字符串格式细微变动(比如空格、换行)导致的错误:

import json

def extract_last_time(json_str):
    try:
        # 解析JSON字符串为列表
        items = json.loads(json_str)
        # 取最后一个元素的interactionTime并截取前19位
        return items[-1]['interactionTime'][:19] if items else None
    except:
        # 处理解析失败的情况,返回None或自定义默认值
        return None

# 应用函数到目标列
df['Interaction Time'] = df['json_col'].apply(extract_last_time)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:15:19