如何从Pandas DataFrame的字典类型列提取指定键对应的值
错误原因
你的自定义函数逻辑冗余出错:x["params"]["text"]取到的本身就是完整的文本字符串,对字符串执行for遍历时,每次迭代会取出单个字符,同时你在第一次循环就直接return结果,所以最终只会返回每个文本的首字母。
正确实现方案
方案1:修改自定义函数
去掉多余的循环,直接返回目标值即可:
def get_comment_text(x): return x["params"]["text"] # 如果你要覆盖原params列就这么写 df['params'] = df.apply(get_comment_text, axis=1) # 如果要新增comment_text列,改成df['comment_text'] = ...即可
方案2:更简洁的矢量化写法
不需要自定义函数,直接用Pandas内置的.str访问器提取字典键值,性能更优:
df['params'] = df['params'].str['text']
运行以上任意一种代码,都能得到你期望的结果。
内容的提问来源于stack exchange,提问作者Roman
相关产品推荐
相关产品推荐

