首页 > 解决方案 > 替换熊猫数据框中包含引号的字符串

问题描述

我在数据框中有一列是字典列表。例如:

[{'attr': 'color', 'value': 'BLUE'}]

问题是不需要'attr'和'value',我希望所有行中的格式都更改为:

[{'color' : 'BLUE'}]

pandas str.replace 不起作用,因为 'attr' 和 'value' 包含在引号中,我无法编写一个合适的正则表达式来完全删除 'attr' 和 'value' 但保留引号而不是颜色和蓝色。

解决这个问题的pythonic方法是什么?

标签: pythonpandas

解决方案


使用.apply

前任:

import pandas as pd

df = pd.DataFrame({"A": [[{'attr': 'color', 'value': 'BLUE'}]]})
df["A"] = df["A"].apply(lambda x: [dict([i.values()]) for i in x])
print(df)

输出:

                       A
0  [{'color': 'BLUE'}]

推荐阅读