📌  相关文章
📜  基于两列删除 Pandas Dataframe 中的重复项

📅  最后修改于: 2022-05-13 01:55:34.517000             🧑  作者: Mango

基于两列删除 Pandas Dataframe 中的重复项

数据框是一个二维、大小可变的表格数据结构,带有标记的轴(行和列)。它可以包含重复的条目,有多种方法可以删除它们。

让我们考虑以下数据集。

数据框在 order_id 和 customer_id 列中包含重复值。以下是基于两列从数据框中删除重复值的方法。

方法一:使用 drop_duplicates()

方法:

  • 我们将删除基于两列的重复列
  • 让这些列是 'order_id' 和 'customer_id'
  • 仅保留最新条目
  • 重置数据帧的索引

以下是上述方法的Python代码。

Python3
# import pandas library
import pandas as pd
  
# load data
df1 = pd.read_csv("super.csv")
  
# drop rows which have same order_id
# and customer_id and keep latest entry
newdf = df1.drop_duplicates(
  subset = ['order_id', 'customer_id'],
  keep = 'last').reset_index(drop = True)
  
# print latest dataframe
display(newdf)


Python3
# import pandas library
import pandas as pd
  
# read data
df1 = pd.read_csv("super.csv")
  
# group data over columns 'order_id'
# and 'customer_id' and keep first entry only
newdf1 = df1.groupby(['order_id', 'customer_id']).first()
  
# print new dataframe
print(newdf1)


输出:

方法二:使用groupby()

方法:

  • 我们将根据两列对行进行分组
  • 让这些列是 'order_id' 和 'customer_id'
  • 仅保留第一个条目

上述方法的Python代码如下。

蟒蛇3

# import pandas library
import pandas as pd
  
# read data
df1 = pd.read_csv("super.csv")
  
# group data over columns 'order_id'
# and 'customer_id' and keep first entry only
newdf1 = df1.groupby(['order_id', 'customer_id']).first()
  
# print new dataframe
print(newdf1)

输出: