python - 循环遍历熊猫数据框以删除重复项
问题描述
例如我有以下df:
**names** **score** WhatIWant
Jones, Tom, Eddy 119. Jones, Tom, Eddy
Nick, Tim, Bob 222. Nick, Tim, Bob
Jones, Eddy, Luke 221. Luke
Timmy, Jones, Sam 112. Timmy, Sam
我需要遍历此数据框并删除“名称”列中的所有重复名称,即删除那些出现在较早行中的名称。
例如,在第 1 行和第 3 行重复琼斯和艾迪,我希望将它们从第 3 行中删除。
解决方案
import pandas as pd
df = pd.DataFrame()
df['names'] = ['Jones, Tom, Eddy', 'Nick, Tim, Bob', 'Jones, Eddy, Luke', 'Timmy, Jones, Sam']
df['scores'] = [119, 222, 221, 112]
names_till_now = []
def get_unique_names(names_till_now, names_string):
names_list = names_string.split(",")
names_list = [name.strip() for name in names_list]
names_unique = [i for i in names_list if i not in names_till_now]
names_till_now += names_list
return ', '.join(name for name in names_unique)
df['names'] = df.apply(lambda x: get_unique_names(names_till_now, x['names']),axis=1)
df
输出如下
names scores
0 Jones, Tom, Eddy 119
1 Nick, Tim, Bob 222
2 Luke 221
3 Timmy, Sam 112
推荐阅读
- java - Jython - Scala 数组/列表在 python 脚本中不是 JSON 可序列化的
- python - 根据熊猫中的两列值组合两个数据框
- javascript - 具有两个承诺的映射返回两个数组,但只需要一个
- python - 如何为 on_message 命令添加别名?
- node.js - 如何使用 express 传递数据和重定向?
- javascript - 无法使用 angularfire 从 firestore 获取收藏列表
- javascript - 如何使用 nodejs 和 node-fetch 从 Azure 为 Microsoft Graph 获取客户端令牌
- python - 如何从气流中 xcom_pull 一个 return_value 并作为字典传递?
- python - win32con win32gui PyQt5 焦点问题
- wordpress - .mov 没有在 iOS 上专门在 HTML5 视频中播放