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。
为你推荐

