我在数据框中有一个列,该列是字典的列表。 例如:
[{'attr': 'color', 'value': 'BLUE'}]
问题是'attr'和'value'不是必需的,我希望所有行的格式都更改为:
[{'color' : 'BLUE'}]
pandas str.replace无法正常工作,因为引号中包含“ attr”和“ value”,因此我无法编写合适的正则表达式来完全删除“ attr”和“ value”,但将引号保留在color和BlUE上
什么是解决该问题的Python方法?
答案 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})