Skip to main content
 首页 » 编程设计

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

2025年05月04日27lexus

我有一个 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 也会告诉我同样的事情。但是当我打印或迭代时,它似乎不起作用。事实上,即使特定列的打印长度也给我 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 且未指定 index 时,pandas 会自行为行编制索引,这是一个简单的递增整数值。

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

df.reset_index(inplace=True) 

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