删除具有重复列 pandas 数据框 (Python) 的行

Removing rows with a duplicate column pandas dataframe (Python)

我有一个 csv,我使用 pandas 读取它并创建了一个数据框。 数据框如下所示:

description     title
lorem ipsum       A
ipsum lorem       A
dolor sit amet    C
amet sit dolor    B

它有 1034 行和 2 列

现在我想从数据框中删除所有具有重复标题的行,并使数据框如下所示:

description     title
lorem ipsum       A
dolor sit amet    C
amet sit dolor    B

我找到了一个解决方案,它说使用 drop_duplicates() 删除重复项。在我的场景中,我做了:

df.drop_duplicates('title', inplace = True)

当我 print df 它仍然显示 1034 行,但最后它显示 [967 x 2],这意味着它有 967 行并且它确实删除了重复项。即使做 df.shape 也会告诉我同样的事情。但是当我打印或迭代时,它似乎不起作用。 In-fact 甚至特定列的打印长度也给我 967。示例:print len(df['title']) 给我 967。只是数据帧索引的编号相同吗?或者它真的还有 1034 行? 可能是什么问题?

我附上我的代码:

df = pd.read_csv('latestdata.csv', sep='\t')
df.drop_duplicates('title', inplace=True)
print df

删除重复项工作正常。你的代码很好。这是对正在发生的事情的解释。当您创建一个 pandas 数据帧并且不指定索引时,pandas 会自行为行编制索引,这是一个简单的递增整数值。

当您删除重复项时,所有重复的索引都会被删除。如果您想重置索引,请执行以下操作:

df.reset_index(inplace=True)

你的数据帧将被重新索引,当你打印你的 df 时你会看到最后一个索引是 967。