python - 如何将 json.loads 应用于 pandas df 中的每一行

标签 python json pandas

我有带有列 metadata 的 Pandas df .此列包含嵌套字典。我想去掉每一行中的值周围的单引号。 json.loads(data)仅使用我通过的一个值就可以正常工作。

下面的例子:

data = '{"dek": "<p>Don\'t forget to buy a card</p>", "links": {"edit": {"dev": "...}}}'
data_json = json.loads(data)
data

输出:{"dek": "<p>Don\'t forget to buy a card</p>", "links": {"edit": {"dev": "...}}}
但是,当我尝试对 metadata 中的每一行执行此操作时列,它给了我一个错误。这是代码:
for index, row in sample_df.iterrows():
    sample_df['metadata'] = json.loads(sample_df["metadata"])
TypeError: the JSON object must be str, bytes or bytearray, not Series
数据集示例:
id    metadata                                         title 
123  {"dek": "<p>Student loan debt is crippling a g... channel
124  {"dek": "<p>Student loan debt is crippling a...   fashion

最佳答案

尝试使用此代码:

sample_df['metadata'] = sample_df['metadata'].apply(json.loads)

Panda 的 apply 函数,将函数传递给系列的每个值。这非常有用,因为您可以跳过每一行的迭代。
如果您想了解更多关于此功能的信息以及您可以更改的参数,请参阅官方文档here .

关于python - 如何将 json.loads 应用于 pandas df 中的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60174271/

相关文章:

python - 基于标签扩展numpy数组

python - 如何同时遍历两个文件中的行?

python - 具有表示错误的四舍五入 float 到最接近和正确的结果

json - 如何让 JSON 架构在 Visual Studio 2015 中工作(智能感知和验证)

python - Pandas,有没有更快的更新值的方法?

Python - Pandas 数据框 - 生成包含组级信息的列

python - Discord.py 级别最高的前 5 位用户

json - Node package.json "bin"值,命令不起作用

python - Pandas 删除任何字符串的行

android - Cocos2dx Android : getFileData failed to get . 来自 Assets 的json文件