首页 > 其他分享 >Pandas教程之十:从DataFrame的列中获取唯一值

Pandas教程之十:从DataFrame的列中获取唯一值

时间:2024-11-27 18:58:38浏览次数:8  
标签:之十 df 列中 DataFrame 唯一 unique Pandas

从 Pandas DataFrame 中的列中获取唯一值

unique() 函数删除列上的所有重复值,并为多个相同值返回单个值。在本文中,我们将讨论如何从Pandas DataFrame中的列中获取唯一值。

# 获取任意列的唯一值
df.ColumnName.unique()

Pandas 列中的唯一值

  • 创建具有重复元素的 Pandas Dataframe
  • 使用 unique() 获取 Pandas 的唯一值
  • 使用 nunique 查找列中的唯一值
  • 使用 set() 消除列中的重复值
  • 使用 Series.drop_duplicates() 获取列中的唯一值

下面是一些示例,通过这些示例我们可以获取数据框中列中的唯一值。

创建具有重复元素的 Pandas Dataframe

创建一个带有列表字典的示例 Pandas 数据框,假设列名称为A、B、C、D 和 E,其中包含重复元素。

Python

# Import pandas package
import pandas as pd

# create a dictionary with five fields each
data = {
    'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B1', 'B2', 'B3', 'B4', 'B4'],
    'C': ['C1', 'C2', 'C3', 'C3', 'C3'],
    'D': ['D1', 'D2', 'D2', 'D2', 'D2'],
    'E': ['E1', 'E1', 'E1', 'E1', 'E1']}

# Convert the dictionary into DataFrame
df = pd.DataFrame(data)

使用 unique() 获取 Pandas 的唯一值

获取“B”列的唯一值

在此示例中,我们使用方法检索并打印“B”列中的唯一值。结果的唯一值为。unique()['B1', 'B2', 'B3', 'B4']

Python

# Import pandas package
import pandas as pd

# Convert the dictionary into DataFrame
df = pd.DataFrame(data)

# Get the unique values of 'B' column
df.B.unique()

输出

array(['B1', 'B2', 'B3', 'B4'], dtype=object)

获取 Pandas 在 E 列中的唯一值

在此示例中,我们从字典中创建一个 pandas DataFrame,然后使用unique()方法从“E”列中检索唯一值。结果的唯一值为['E1']。

Python

# Import pandas package
import pandas as pd

# Convert the dictionary into DataFrame
df = pd.DataFrame(data)

# Get the unique values of 'E' column
df.E.unique()

输出

array(['E1'], dtype=object)

使用 nunique 查找列中的唯一值

在此示例中,我们从字典创建一个 pandas DataFrame,然后计算并打印“C”列中唯一值的数量(不包括 NaN 值)。结果为 3,表示“C”列中有三个唯一值。

Python

# Import pandas package
import pandas as pd

# Convert the dictionary into DataFrame
df = pd.DataFrame(data)

# Get number of unique values in column 'C'
df.C.nunique(dropna=True)

输出

3

使用 set() 消除列中的重复值

在此示例中,我们从字典中创建一个 pandas DataFrame,然后使用set()函数从“C”列中提取唯一值,消除重复项。结果集{'C1', 'C2', 'C3'}表示“C”列中的唯一值。

Python

# Import pandas package
import pandas as pd

# Convert the dictionary into DataFrame
df = pd.DataFrame(data)

# Use set() to eliminate duplicate values in column 'C'
unique_values_set = set(df['C'])

# Print the unique values
print(unique_values_set)

输出

{'C1','C2','C3'}

使用 Series.drop_duplicates() 获取列中的唯一值

在此示例中,我们从字典中创建一个 pandas DataFrame,并使用drop_duplicates()方法从“A”和“D”列中删除重复项。打印时,生成的 DataFrame 将显示“A”和“D”列中的唯一值,其中从“D”中删除重复项的位置显示 NaN 值。

Python

# Import pandas package
import pandas as pd

# Convert the dictionary into DataFrame
df = pd.DataFrame(data)

# Use drop_duplicates() to remove duplicates from columns 'A' and 'D'
df['A'] = df['A'].drop_duplicates()
df['D'] = df['D'].drop_duplicates()

# Print the DataFrame after removing duplicates from columns 'A' and 'D'
print(df)

输出

    

    A   B   C   D   E
0  A1  B1  C1  D1  E1
1  A2  B2  C2  D2  E1
2  A3  B3  C3 NaN  E1
3  A4  B4  C3 NaN  E1
4  A5  B4  C3 NaN  E1

从 Pandas DataFrame 中的列中获取唯一值 – 常见问题解答

如何从 Pandas DataFrame 中的列中获取唯一值?

要从 Pandas DataFrame 中的列中检索唯一值,请使用该unique()方法。此方法返回唯一值的 NumPy 数组。

例子:

import pandas as pd

# 创建一个 DataFrame
df = pd.DataFrame({'A': [1, 2, 2, 3, 4, 4, 5]})

# 从“A”列获取唯一值
unique_values = df['A'].unique()

print(unique_values) # [1 2 3 4 5]

有哪些方法可以获取 Pandas 中的唯一值?

  1. unique():返回某列中唯一值的数组。
  2. drop_duplicates():删除重复的行或列,返回DataFrame或Series。
  3. value_counts():返回包含唯一值计数的系列。

例子:

  • 使用:drop_duplicates()

# 从 'A' 列中删除重复值
unique_df = df['A'].drop_duplicates()

print(unique_df) # 0 1, 1 2, 2 3, 3 4, 4 5

  • 使用:value_counts()

# 获取唯一值的计数
value_counts = df['A'].value_counts()

print(value_counts) # 2 2, 4 2, 1 1, 3 1, 5 1

如何计算 Pandas DataFrame 中的唯一值?

要计算唯一值,请使用该nunique()方法。它返回列或 DataFrame 中唯一值的数量。

例子:

# 计算“A”列中的唯一值
unique_count = df['A'].nunique()

print(unique_count) # 5

unique()Pandas 中的和有什么区别nunique()

  • unique():返回唯一值的数组。
  • nunique():返回唯一值的数量。

例子:

# 使用 unique()
unique_values = df['A'].unique()
print(unique_values) # [1 2 3 4 5]

# 使用 nunique()
unique_count = df['A'].nunique()
print(unique_count) # 5

在 Pandas 中获取唯一数据时如何处理 NaN 值?

NaNunique()值包含在和方法的结果中nunique()。要处理它们:

  • 在获取唯一值之前删除 NaN 值:

# 具有 NaN 值的 DataFrame
df_with_nan = pd.DataFrame({'A': [1, 2, 2, None, 4, None]})

# 删除 NaN 值并获取唯一值
unique_values = df_with_nan['A'].dropna().unique()

print(unique_values) # [1. 2. 4.]

  • 计算唯一的非 NaN 值:

# 计算除 NaN 之外的唯一值
unique_count = df_with_nan['A'].dropna().nunique()

print(unique_count) # 3

标签:之十,df,列中,DataFrame,唯一,unique,Pandas
From: https://blog.csdn.net/xt14327/article/details/144035334

相关文章

  • Spring Boot教程之十一:获取Request 请求 和 Put请求
    如何在SpringBoot中获取RequestBody?Java语言是所有编程语言中最流行的语言之一。使用Java编程语言有几个优点,无论是出于安全目的还是构建大型分发项目。使用Java的优点之一是Java试图借助类、继承、多态等概念将语言中的每个概念与现实世界联系起来。Java中还有......
  • Pandas教程之十一:改变特定列大小写和从特定列获取N个最大值
      将大写字母应用于PandasDataFrame中的列分析现实世界的数据有些困难,因为我们需要考虑各种因素。除了从大型数据集中获取有用的数据外,将数据保存为所需的格式也非常重要。可能会遇到需要将给定DataFrame中任何特定列中的每个字母大写的情况。让我们看看如何......
  • 连接mysql并读取指定表单数据到DataFrame
    提问python如何连接mysql并读取指定表单数据到DataFrame解答要在Python中连接MySQL并读取指定表单数据到DataFrame,你可以使用pandas库结合sqlalchemy引擎或者mysql-connector-python。这里我将展示两种方法的示例代码。使用pandas和sqlalchemy确保安装了必要的库:pip......
  • Go实战全家桶之十九:GO代理模式实现测试桩优化版
    定义接口实现接口实现测试桩定义代理测试third.InitThirdProxyStub()func(suite*TestTestStubSuite)Test009_ContactShopEs(){   varret,err=third.FindBeanThirdProxy().ContactShopListQuery([]int64{974835942347243523})   golog.Info(esobject.Adap......
  • Cesium中级开发教程之十五:键控地球
    教程示例网站:https://thomaz529.github.io/一、原理 关闭默认屏幕控制机制,开启ScreenSpaceEventHandler自定义键盘事件,viewer.clock.onTick.addEventListener监听键盘事件,并控制相机的前进后退的操作。w键是前进,s键是后退,a键是向左,d键是向右,q键是抬起,e键是降低。二、效果......
  • 第2关:寻找一个序列中的第K小的元素(即第k小元问题)
    [TOC]寻找一个序列中的第K小的元素(即第k小元问题)对于给定的含有n(n<=100)元素的无序序列,求这个序列中第k(1≤k≤n)小的元素。任务描述本关任务:编写一个能计算数组中的第k小的元素的小程序。相关知识假设无序序列存放在a[0…n-1]中,若将a递增排序,则第k小的元素为a[k-1]。......
  • 用函数创建DataFrame:使用字典推导式
    importpandasaspddefmake_df(cols,ind):"""一个简单的DataFrame"""#字典推导式,为每列生成数据data={c:[str(c)+str(i)foriinind]forcincols}#创建并返回DataFramereturnpd.DataFrame(data,ind)#DataFrame示例d......
  • DataFrame索引与列名操作
    DataFrame索引与列名操作学习目标知道如何查看索引及列名知道如何修改索引及列名1数据准备我们继续使用链家租房数据来学习本章节的API,导包并读取数据importpandasaspd#加载数据集df=pd.read_csv('../data/LJdata.csv')#获取天通苑租房区域的所有数据,......
  • dataframe的apply按行操作
    1.原始数据及要求+---------------+-----------+---------------+--------+|stock_name|operation|operation_day|price|+---------------+-----------+---------------+--------+|Leetcode|Buy|1|1000||CoronaMasks|Buy......
  • 【python】Panda 之Dataframe 基础api讲解代码 建议在Jupyter Notebook 中运行
    建议在JupyterNotebook中运行jupyternotebook环境搭建文章目录1.dataframe常用属性2.dataframe的常用方法3.dataframe对象的布尔值操作4.datafrane对象的计算5.更改series和dataframe对象5.2修改行名和列名5.3添加删除插入列6.导入和导出数据6.1导......