替换熊猫数据框中包含引号的字符串

时间:2019-04-25 08:16:07

标签: python pandas

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

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

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

[{'color' : 'BLUE'}]

pandas str.replace无法正常工作,因为引号中包含“ attr”和“ value”,因此我无法编写合适的正则表达式来完全删除“ attr”和“ value”,但将引号保留在color和BlUE上

什么是解决该问题的Python方法?

2 个答案:

答案 0 :(得分:2)

使用.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'}]

答案 1 :(得分:1)

类似这样的东西:

df = pd.DataFrame({'col':[[{'attr': 'color', 'value': 'BLUE'}]]})
df['col'].apply(lambda x: {elt['attr']: elt['value'] for elt in x})