删除具有重复列数据帧的行(Python)
我有一个csv,我用pandas读取并创建了一个数据框。 数据帧如下所示:删除具有重复列数据帧的行(Python),python,dataframe,sklearn-pandas,Python,Dataframe,Sklearn Pandas,我有一个csv,我用pandas读取并创建了一个数据框。 数据帧如下所示: description title lorem ipsum A ipsum lorem A dolor sit amet C amet sit dolor B description title lorem ipsum A dolor sit amet C amet sit dolor B 它有1034行和2列 现在我想从数据框中删除所有标题
description title
lorem ipsum A
ipsum lorem A
dolor sit amet C
amet sit dolor B
description title
lorem ipsum A
dolor sit amet C
amet sit dolor B
它有1034行和2列
现在我想从数据框中删除所有标题重复的行,并使数据框如下所示:
description title
lorem ipsum A
ipsum lorem A
dolor sit amet C
amet sit dolor B
description title
lorem ipsum A
dolor sit amet C
amet sit dolor B
我找到了一个解决方案,使用drop\u duplicates()
删除重复项。在我的场景中,我做到了:
df.drop_duplicates('title', inplace = True)
当Iprint df
时,它仍然显示1034行,但最后显示[967 x 2],这意味着它有967行,并且确实删除了重复项。即使做df.shape也告诉我同样的事情。但当我打印或迭代时,它似乎不起作用。事实上,即使是某一列的打印长度也会给我967。示例:print len(df['title'])
给了我967
。只是数据帧索引的编号相同吗?或者它真的还有1034行?
可能是什么问题
我附上我的代码:
df = pd.read_csv('latestdata.csv', sep='\t')
df.drop_duplicates('title', inplace=True)
print df
滴水器工作正常。你的代码很好。这是关于发生了什么的解释。当您创建pandas dataframe且未指定索引时,pandas将自己对行进行索引,这是一个简单的递增整数值 删除重复项时,将删除所有重复的索引。如果要重置索引,请执行以下操作:
df.reset_index(inplace=True)
您的数据帧将被重新索引,当您打印df时,您将看到最后一个索引为967。删除重复项工作正常。你的代码很好。这是关于发生了什么的解释。当您创建pandas dataframe且未指定索引时,pandas将自己对行进行索引,这是一个简单的递增整数值 删除重复项时,将删除所有重复的索引。如果要重置索引,请执行以下操作:
df.reset_index(inplace=True)
您的数据帧将被重新索引,当您打印df时,您将看到最后一个索引为967。如果您使用一个小示例运行代码会怎么样?!我应该创建一个虚拟数据框并测试一小部分值吗?不,只需创建一个虚拟的.csv->运行你的代码->看看它给出了什么。我确实运行了,结果表明,删除后它不会改变索引号。谢谢你,伙计!如果您使用一个小示例运行代码会怎么样?!我应该创建一个虚拟数据框并测试一小部分值吗?不,只需创建一个虚拟的.csv->运行你的代码->看看它给出了什么。我确实运行了,结果表明,删除后它不会改变索引号。谢谢你,伙计!