删除重复数据是数据分析中经常会遇到的一个问题。通过数据去重,不仅可以节省内存空间,提高写入性能,还可以提升数据集的精确度,使得数据集不受重复数据的影响。
在 Pandas 中,可以使用 drop_duplicates() 方法来删除 DataFrame 中的重复行。该方法默认删除所有列值都相同的行,也可以指定列进行去重。
下面是一些常用的去重方法:
下面是这些方法的详细说明和示例:
drop_duplicates() 方法返回一个去重后的 DataFrame。
语法:
DataFrame.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False)
参数说明:
举个例子:
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 2, 3, 4],
'B': ['a', 'b', 'b', 'c', 'd']
})
df.drop_duplicates() # 默认去除所有列相同的行
# 指定列去重
df.drop_duplicates(subset='A') # 去除 A 列相同的行
# 指定多列去重
df.drop_duplicates(subset=['A', 'B']) # 去除 A、B 列相同的行
duplicated() 方法返回一个布尔型 Series,指示每行是否为重复行。如果行是重复的,则为 True,否则为 False。
语法:
DataFrame.duplicated(subset=None, keep='first')
参数说明:
示例:
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 2, 3, 4],
'B': ['a', 'b', 'b', 'c', 'd']
})
df.duplicated() # 返回一个布尔型 Series,指示每行是否为重复行
dropna()是pandas中用于删除缺失值(NaN)的方法,可以对数据进行清洗。该方法默认删除所有包含缺失值的行或列,也可以根据指定条件进行删除。
语法为:
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
各参数含义如下:
下面是一个示例,演示如何使用dropna()方法删除数据中的缺失值:
import pandas as pd
import numpy as np
# 构造包含缺失值的数据
df = pd.DataFrame({'A': [1, 2, np.nan, 4],
'B': [5, np.nan, 7, 8],
'C': [9, 10, 11, np.nan]})
# 删除所有包含缺失值的行
df1 = df.dropna()
# 删除所有包含缺失值的列
df2 = df.dropna(axis=1)
# 保留至少有两个非空值的行
df3 = df.dropna(thresh=2)
# 仅对‘A’列和‘B’列进行删除
df4 = df.dropna(subset=['A', 'B'])
print(df)
print(df1)
print(df2)
print(df3)
print(df4)
输出结果如下:
A B C
0 1.0 5.0 9.0
1 2.0 NaN 10.0
2 NaN 7.0 11.0
3 4.0 8.0 NaN
A B C
0 1.0 5.0 9.0
Empty DataFrame
Columns: []
Index: [0, 1, 2, 3]
A B C
0 1.0 5.0 9.0
1 2.0 NaN 10.0
3 4.0 8.0 NaN
A B C
0 1.0 5.0 9.0
3 4.0 8.0 NaN
本文链接:http://task.lmcjl.com/news/4511.html