python - 删除字典中的重复值
问题描述
我想在提取所需数据“rate”和“genre”后删除字典中的重复值
a=[{'movie': 'abc', 'rate': '9', 'origin': 'AU', 'genre': 'horror'},
{'movie': 'xyz', 'rate': '7', 'origin': 'NY', 'genre': 'romance'},
{'movie': 'jkl', 'rate': '9', 'origin': 'HK', 'genre': 'horror'},
{'movie': 'qwe', 'rate': '6', 'origin': 'HK', 'genre': 'comedy'},
{'movie': 'vbn', 'rate': '9', 'origin': 'BKK', 'genre': 'romance'}]
needed_data=[]
for test in a:
x={}
word=['rate','genre']
for key,value in test.items():
for words in word:
if key == words:
x[key] = value
needed_data.append(x)
results = {}
filters=[]
for yy in needed_data:
for key,value in yy.items():
if value not in results.values():
results[key] = value
filters.append(results)
print(filters)
上面代码的输出是
[{'rate': '9', 'genre': 'romance'},
{'rate': '9', 'genre': 'romance'},
{'rate': '9', 'genre': 'romance'},
{'rate': '9', 'genre': 'romance'},
{'rate': '9', 'genre': 'romance'}]
我想要的输出是
[{'rate': '9', 'genre': 'horror'},
{'rate': '7', 'genre': 'romance'},
{'rate': '6', 'genre': 'comedy'},
{'rate': '9', 'genre': 'romance'}]
解决方案
我建议使用 pandas 进行数据处理
import pandas as pd
df = pd.DataFrame(a)
df_dd= df[["genre", "rate"]].drop_duplicates()
new_a = df_dd.to_dict(orient="records")
print(new_a)
输出
[{'genre': 'horror', 'rate': '9.'},
{'genre': 'romance', 'rate': '7'},
{'genre': 'horror', 'rate': '9'},
{'genre': 'comedy', 'rate': '6'},
{'genre': 'romance', 'rate': '9'}]
推荐阅读
- javascript - Javascript 数组等效于 PHP 中的 json_encode() 和 setcookie()
- r - 无论如何在R中使用stargazer导出feols模型?
- memory - In place update columns of a matrix
- javascript - UnhandledPromiseRejectionWarning:ReferenceError:语音未定义
- sql-server - 如何根据用户登录限制数据访问
- google-sheets - 谷歌根据用户选择的标签查询动态数据范围
- javascript - 如何获取长度以了解生成的数字数量?
- c - 如何在 C 中使用带有数组的随机数生成器
- python - 有没有一种快速的方法来遍历涉及计算的熊猫数据框?
- python - 如何从python中的N个不同正态分布中采样M次?在处理时间方面是否有“更快”的方式?