Python 无法删除CSV中的重复项

Python 无法删除CSV中的重复项,python,pandas,Python,Pandas,“我在csv中有一个数据集,这是一个字段名插曲,我们将为未来的体育赛事采集数据,我们有”“印度对巴基斯坦和巴基斯坦对印度,在同一日期,是否有删除副本的选项?” 提前谢谢 您可以使用的一个想法是对方法进行排序,按所需的列进行分组 df["RANK"] = df.groupby("Column_1")["Column_2"].rank(method="first", ascending=True) 这将通过分组返回数据帧,因此三行重复应该分别排列为1、2和3。从那里,您可以获取数据帧的子集,其中r

“我在csv中有一个数据集,这是一个字段名插曲,我们将为未来的体育赛事采集数据,我们有”“印度对巴基斯坦和巴基斯坦对印度,在同一日期,是否有删除副本的选项?”

提前谢谢


您可以使用的一个想法是对方法进行排序,按所需的列进行分组

df["RANK"] = df.groupby("Column_1")["Column_2"].rank(method="first", ascending=True)

这将通过分组返回数据帧,因此三行重复应该分别排列为1、2和3。从那里,您可以获取数据帧的子集,其中
rank=1
,这将为您提供一个没有重复的数据帧

创建一个新的匹配列,然后删除重复项

# sample df
df = pd.DataFrame({'a': [1,1,1,1,1],
                   'b': ['Bulldogs at Aztecs', 'Aztecs at Bulldogs', 'Bearcats at Huskies', 'Huskies at Bearcats', 'something else']})

# list comprehension and sort words in string 
df['match'] = [' '.join(sorted(x.split())) for x in df['b'].values]

#    a                    b                match
# 0  1   Bulldogs at Aztecs   Aztecs Bulldogs at
# 1  1   Aztecs at Bulldogs   Aztecs Bulldogs at
# 2  1  Bearcats at Huskies  Bearcats Huskies at
# 3  1  Huskies at Bearcats  Bearcats Huskies at
# 4  1       something else       else something

# drop_duplicates
df.drop_duplicates(['a', 'match'], keep='first').drop(columns='match')

#    a                    b
# 0  1   Bulldogs at Aztecs
# 2  1  Bearcats at Huskies
# 4  1       something else

欢迎来到堆栈溢出!不幸的是,这不是一个代码编写或教程网站,我们要求您提供一个包含示例输入和输出(作为问题中的文本,而不是图片)以及基于您自己的研究尝试的代码。有关输入和输出的帮助,请参阅。在最后两行中,文本在单词方面甚至不相同,因为
Unlv
出现在最后一行的前面,而
Unlvrebels
出现在最后一行中。您应该先处理数据集,然后继续删除重复项。@Chris会在这里工作,因为他左边有一列是唯一的,仅使用翻转的文本。@WilliamKnighting对字符串中的字符进行排序,并将重复的字符放到That上。嗨,chris,请您解释一下第二行发生了什么。@Rengana当然,这是列表理解。因此,对于
df['b']
列中的每个值,您可以使用
split
'
(空格)上的每个字符串拆分,并创建字符串中所有单词的列表。例如,
['Bulldogs','at','Aztecs']
然后调用内置的
sorted
函数对新列表中的字符串进行排序,然后将现在排序的列表中的字符串连接在一起,形成一个新字符串。然后将这些值分配给一个新列。要了解更多信息,您可以分别运行这三行来查看发生了什么:
“阿兹特克的斗牛犬”。split()
然后
排序(“阿兹特克的斗牛犬”。split())
然后
”。join(排序(“阿兹特克的斗牛犬”。split())
您能帮我一下吗