如何从Pandas DataFrame中删除重复项?

2021年9月19日23:16:57 发表评论 973 次浏览

需要从Pandas DataFrame中删除重复项吗?

如果是这样,你可以应用以下语法从DataFrame中删除重复项:

df.drop_duplicates()

Pandas DataFrame如何删除重复项?在下一节中,你将看到在实践中应用此语法的步骤以及相关的Pandas DataFrame删除重复项示例

从 Pandas DataFrame中删除重复项的步骤

步骤 1:收集包含重复项的数据

首先,你需要收集包含重复项的数据。

例如,假设你有以下关于盒子的数据,其中每个盒子可能有不同的颜色或形状:

ColorShape
GreenRectangle
GreenRectangle
GreenSquare
BlueRectangle
BlueSquare
RedSquare
RedSquare
RedRectangle

如你所见,两列下都有重复项。

在删除这些重复项之前,你需要创建 Pandas DataFrame以在 Python 中捕获该数据。

第 2 步:创建 Pandas DataFrame

接下来,使用以下代码创建 Pandas DataFrame:

import pandas as pd

boxes = {'Color': ['Green','Green','Green','Blue','Blue','Red','Red','Red'],
         'Shape': ['Rectangle','Rectangle','Square','Rectangle','Square','Square','Square','Rectangle']
        }
df = pd.DataFrame(boxes, columns = ['Color', 'Shape'])

print(df)

在 Python 中运行代码后,你将获得与步骤 1 中相同的值:

   Color      Shape
0  Green  Rectangle
1  Green  Rectangle
2  Green     Square
3   Blue  Rectangle
4   Blue     Square
5    Red     Square
6    Red     Square
7    Red  Rectangle

第 3 步:从 Pandas DataFrame 中删除重复项

要从DataFrame中删除重复项,你可以使用在本指南开头看到的以下语法:

df.drop_duplicates()

Pandas DataFrame如何删除重复项?假设你要删除颜色形状两列中的重复项

在这种情况下,请应用以下代码以删除这些重复项:

import pandas as pd

boxes = {'Color': ['Green','Green','Green','Blue','Blue','Red','Red','Red'],
         'Shape': ['Rectangle','Rectangle','Square','Rectangle','Square','Square','Square','Rectangle']
        }
df = pd.DataFrame(boxes, columns = ['Color', 'Shape'])

df_duplicates_removed = df.drop_duplicates()
print(df_duplicates_removed)

如你所见,只有两列中的不同值仍然存在:

   Color      Shape
0  Green  Rectangle
2  Green     Square
3   Blue  Rectangle
4   Blue     Square
5    Red     Square
7    Red  Rectangle

但是,如果你想删除特定列(例如颜色列)上的重复项怎么办?

在这种情况下,你可以使用子集指定列名

df.drop_duplicates( subset=['Color'] )

因此,删除 Color 列重复项的完整 Python Pandas DataFrame删除重复项示例如下所示:

import pandas as pd

boxes = {'Color': ['Green','Green','Green','Blue','Blue','Red','Red','Red'],
         'Shape': ['Rectangle','Rectangle','Square','Rectangle','Square','Square','Square','Rectangle']
        }
df = pd.DataFrame(boxes, columns = ['Color', 'Shape'])

df_duplicates_removed = df.drop_duplicates(subset=['Color'])
print(df_duplicates_removed)

结果如下:

   Color      Shape
0  Green  Rectangle
3   Blue  Rectangle
5    Red     Square

你可能需要查看Pandas 文档以了解有关从Pandas DataFrame中删除重复项的更多信息。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: