基于两列删除 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)
输出: