pandas 删除重复数据
直接删除所有重复行:
# 直接删除 test_data 所有重复行 test_data=test_data.drop_duplicates() # 查看 test_data 中的重复行 test_data[test_data.duplicated()]
可以使用drop_duplicates
方法删除某一列数据有重复的行。
该方法可以针对一个或多个列进行去重并返回去重后的DataFrame。 下面是删除某一列数据有重复的行的示例代码:
import pandas as pd # 创建DataFrame df = pd.DataFrame({'A': [1, 2, 3, 3, 4, 5], 'B': [2, 3, 4, 5, 6, 7], 'C': [3, 4, 5, 6, 7, 8]}) # 根据'A'列去重 df = df.drop_duplicates(['A']) print(df)
其中,drop_duplicates
方法的参数subset
指定要去重的列,这里我们指定了要根据’A’列去重。如果要去重多列,可以传递一个列名列表,如['A', 'B']
。如果不指定subset
参数,则默认对所有列进行去重。
pandas drop_duplicates 用法?
drop_duplicates
是Pandas中的一个方法,它用于在DataFrame中删除重复的行。该方法可以根据指定的列或所有列去重,并返回去重后的DataFrame。 drop_duplicates
方法的常用参数如下:
subset
:用于指定要根据哪些列进行去重,默认为所有列。keep
:用于指定保留哪个重复值,默认为保留第一个。first
:保留第一个出现的重复值。last
:保留最后一个出现的重复值。False
:删除所有重复值。
inplace
:是否在原DataFrame上进行修改,默认为False。 下面是一个使用drop_duplicates
方法的示例代码:
import pandas as pd # 创建DataFrame df = pd.DataFrame({'key1': ['a', 'b', 'b', 'c', 'c'], 'key2': ['x', 'y', 'y', 'z', 'z'], 'value': [1, 2, 2, 3, 3]}) print(df) # 根据key1列去重,保留第一个出现的重复值 df1 = df.drop_duplicates(subset=['key1'], keep='first') print(df1) # 根据key2列去重,保留最后一个出现的重复值 df2 = df.drop_duplicates(subset=['key2'], keep='last') print(df2) # 根据key1和key2列去重,删除所有重复值 df3 = df.drop_duplicates(subset=['key1', 'key2'], keep=False) print(df3)
输出结果如下:
key1 key2 value 0 a x 1 1 b y 2 2 b y 2 3 c z 3 4 c z 3 key1 key2 value 0 a x 1 1 b y 2 3 c z 3 key1 key2 value 0 a x 1 2 b y 2 4 c z 3 key1 key2 value 0 a x 1 3 c z 3
其中,第一个输出结果为原始的DataFrame,后面三个输出结果分别为根据不同列去重的结果。可以看到,drop_duplicates
方法根据指定的列去重后,返回去重后的DataFrame。
为你推荐