玩转 Pandas unique方法,告别数据重复烦恼

2024-05-27 20:21:02 浏览数 (3)

这是 pandas 快速上手系列的第 5 篇文章,本篇详细介绍了 unique 的使用和示例。pandas 库中的 unique 方法用于获取 DataFrame/Series 中唯一的值或记录。它通常用于查看数据中存在哪些唯一值、去重以及一些数据探索和清理任务。

语法:

代码语言:javascript复制
DataFrame.unique() # 返回所有列的唯一值构成的 Numpy 数组
Series.unique() # 返回 Series 中的唯一值构成的 Numpy 数组

主要使用 unique 查看某列或整个 DataFrame 的唯一值有哪些。

代码语言:javascript复制
In [30]: import pandas as pd
    ...:
    ...: # 创建示例 DataFrame
    ...: data = {'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Charlie'],
    ...:         'Age': [25, 30, 35, 25, 35],
    ...:         'City': ['New York', 'Paris', 'London', 'New York', 'Sydney']}
    ...: df = pd.DataFrame(data)
    
In [59]: df
Out[59]:
      Name  Age      City
0    Alice   25  New York
1      Bob   30     Paris
2  Charlie   35    London
3    Alice   25  New York
4  Charlie   35    Sydney

In [31]: # 获取 Name 列的唯一值
    ...: print(df['Name'].unique())
['Alice' 'Bob' 'Charlie']

获取 DataFrame 中的唯一行记录,使用 drop_duplicates 方法,上面是行索引 0 的内容和行索引 3 的重复,所以会删除索引3的内容

代码语言:javascript复制
In [32]: print(df.drop_duplicates())
      Name  Age      City
0    Alice   25  New York
1      Bob   30     Paris
2  Charlie   35    London
4  Charlie   35    Sydney

根据指定列索引去重,可以设置保留第一个或者最后一个值

代码语言:javascript复制
In [33]: df.drop_duplicates(subset='Name', keep='first')
Out[33]:
      Name  Age      City
0    Alice   25  New York
1      Bob   30     Paris
2  Charlie   35    London

1 人点赞