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。

   
 
 

为你推荐
Ta的个人站点

mb发布文章164篇


imcn微信公众号

分类