删除具有重复列 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。
我有一个 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。