python - 如何过滤数据框中的列表以仅包含唯一值?
问题描述
我有一个名为“CPC”的数据框,如下所示:
location_code sitc_product_code
ABW [0711, 0711, 6996, 6996, 7284, 7492, 7492, 749...
AFG [0711, 1110, 7188, 7284, 7284, 7423, 7423, 749...
AGO [0711, 0711, 0711, 0711, 0711, 0711, 0711, 699...
AIA [7188, 7492, 8743, 8947, 7641, 7649, 7783, 778...
ALB [0585, 1110, 7188, 7239, 7239, 7239, 7492, 749...
... ...
WSM [7284, 7284, 7284, 0341, 0341, 0341, 6424, 682...
YEM [0711, 0711, 0711, 0711, 0711, 0711, 1110, 699...
ZAF [0585, 0585, 0585, 0585, 0585, 0585, 0585, 058...
ZMB [0711, 0711, 0711, 0711, 0711, 0711, 0711, 071...
ZWE [0585, 0585, 0585, 0585, 0585, 0585, 0585, 058...
数据框的第二列,标题为“sitc_product_code”,每行包含一个列表。目前,每个列表都包含重复的条目,例如 ABW 行包含两次“0711”和两次“6996”。如何过滤每行中的列表以仅包含唯一值?
我试过这样的事情:
CPC['sitc_product_code'] = set(CPC.sitc_product_code)
这没有用。这真的难倒我,所以我真的很感激一些帮助。
后续问题,一旦此数据框中的列表仅包含唯一值,我如何将数据框转换为字典,以使位置代码成为键?
解决方案
你必须申请set
每一行。您可以使用 :
CPC['sitc_product_code'].apply(lambda row : list(set(row)))
推荐阅读
- apache-camel - 骆驼分裂与jsonPath没有结果
- mysql - 查询 MySQL InnoDB 以查找 Record 是否在其缓冲池中
- php - Laravel 中锁定功能的死锁
- python - 如何动态切片张量变量
- python - Django ListView 设置变量到模型实例元素
- couchdb - CouchDB 查询列表没有给出任何结果
- python - 我可以在 pandas 数据框中找到替换功能的替代 `.loc` 替代方法吗
- push-notification - 应用中心推送与通知中心
- javascript - 网址已定义,但仍收到未定义协议的错误
- c# - 发出 Moq'ing HttpResponseMessage