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

如何从指定JSON生成的DataFrame单元格提取_ym_uid数值?

提取DataFrame单元格中的_ym_uid数值

给定如下创建DataFrame的代码:

import pandas as pd

json = {'contexts_ru_andata_master_cookies_1': {0: [{'_ym_uid': '1664978572350562652'}],
  1: [{'_ym_uid': '1664978577951178500'}],
  2: [{'_ym_uid': '1631015476823239589'}],
  3: [{'_ym_uid': '1664945479855475653'}],
  4: [{'_ym_uid': '1663327749550707020'}],
  6: [{'_ym_uid': '1664978547593809275'}],
  7: [{'_ym_uid': '16649783691007078342'}],
  8: [{'_ym_uid': '1662551949642530804'}]}}

df = pd.DataFrame.from_dict(json)

每个单元格包含一个仅含单个字典的列表,字典的_ym_uid键对应目标数值。以下是两种高效提取方法:

方法1:使用apply结合lambda函数

通过lambda函数直接访问列表的第一个元素(字典),再提取_ym_uid的值:

# 提取为新列
df['_ym_uid'] = df['contexts_ru_andata_master_cookies_1'].apply(lambda x: x[0]['_ym_uid'])

# 或者替换原列
df['contexts_ru_andata_master_cookies_1'] = df['contexts_ru_andata_master_cookies_1'].apply(lambda x: x[0]['_ym_uid'])

方法2:使用Pandas字符串访问器str

利用str访问器简化列表和字典的索引操作:

# 提取为新列
df['_ym_uid'] = df['contexts_ru_andata_master_cookies_1'].str[0].str['_ym_uid']

# 替换原列
df['contexts_ru_andata_master_cookies_1'] = df['contexts_ru_andata_master_cookies_1'].str[0].str['_ym_uid']

可选:转换为整数类型

如果需要将提取的字符串数值转为整数:

df['_ym_uid'] = df['_ym_uid'].astype(int)

执行上述操作后,DataFrame会包含提取出的_ym_uid数值,方便后续分析或处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:01:05