首页 > 编程语言 >Python酷库之旅-第三方库Pandas(192)

Python酷库之旅-第三方库Pandas(192)

时间:2024-11-06 08:47:09浏览次数:3  
标签:Index 892 894 index Python 192 索引 酷库 pandas

目录

一、用法精讲

891、pandas.Index.nunique方法

891-1、语法

891-2、参数

891-3、功能

891-4、返回值

891-5、说明

891-6、用法

891-6-1、数据准备

891-6-2、代码示例

891-6-3、结果输出

892、pandas.Index.value_counts方法

892-1、语法

892-2、参数

892-3、功能

892-4、返回值

892-5、说明

892-6、用法

892-6-1、数据准备

892-6-2、代码示例

892-6-3、结果输出

893、pandas.Index.set_names方法

893-1、语法

893-2、参数

893-3、功能

893-4、返回值

893-5、说明

893-6、用法

893-6-1、数据准备

893-6-2、代码示例

893-6-3、结果输出

894、pandas.Index.droplevel方法

894-1、语法

894-2、参数

894-3、功能

894-4、返回值

894-5、说明

894-6、用法

894-6-1、数据准备

894-6-2、代码示例

894-6-3、结果输出

895、pandas.Index.dropna方法

895-1、语法

895-2、参数

895-3、功能

895-4、返回值

895-5、说明

895-6、用法

895-6-1、数据准备

895-6-2、代码示例

895-6-3、结果输出

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页
​​​​​​​

一、用法精讲

891、pandas.Index.nunique方法
891-1、语法
# 891、pandas.Index.nunique方法
pandas.Index.nunique(dropna=True)
Return number of unique elements in the object.

Excludes NA values by default.

Parameters:
dropna
bool, default True
Don’t include NaN in the count.

Returns:
int
891-2、参数

891-2-1、dropna(可选,默认值为True)布尔值,如果为True,则在计算唯一值的数量时忽略 NaN 值(空值);如果为False,则NaN值也会被计算在内。

891-3、功能

        用于计算Index中的唯一值的数量,唯一值是指在Index中仅出现一次的值。

891-4、返回值

        返回一个整数,表示Index中的唯一值的数量。

891-5、说明

        无

891-6、用法
891-6-1、数据准备
891-6-2、代码示例
# 891、pandas.Index.nunique方法
import pandas as pd
# 创建一个Index对象
index = pd.Index([1, 2, 2, 3, 4, 4, 5, None])
# 计算唯一值的数量,忽略NaN值
nunique = index.nunique(dropna=True)
print(nunique)
# 计算唯一值的数量,包括NaN值
nunique = index.nunique(dropna=False)
print(nunique)  
891-6-3、结果输出
# 891、pandas.Index.nunique方法
# 5
# 6
892、pandas.Index.value_counts方法
892-1、语法
# 892、pandas.Index.value_counts方法
pandas.Index.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)
Return a Series containing counts of unique values.

The resulting object will be in descending order so that the first element is the most frequently-occurring element. Excludes NA values by default.

Parameters:
normalize
bool, default False
If True then the object returned will contain the relative frequencies of the unique values.

sort
bool, default True
Sort by frequencies when True. Preserve the order of the data when False.

ascending
bool, default False
Sort in ascending order.

bins
int, optional
Rather than count values, group them into half-open bins, a convenience for pd.cut, only works with numeric data.

dropna
bool, default True
Don’t include counts of NaN.

Returns:
Series
892-2、参数

892-2-1、normalize(可选,默认值为False)表示控制是否返回相对频率,如果normalize=True,则返回的是每个值的相对频率(即占总数的比例),而不是绝对的频数;当normalize=False时,返回的是每个值的绝对出现次数。

892-2-2、sort(可选,默认值为True)表示控制返回结果是否按照频数排序,如果sort=True,则按频数从高到低排序;如果sort=False,则保留原始顺序。

892-2-3、ascending(可选,默认值为False)表示控制返回结果的排序顺序,当ascending=True时,结果按频数从低到高排序;当ascending=False时,结果按频数从高到低排序。

892-2-4、bins(可选,默认值为None)将数据分箱,适合连续数据,如果提供一个整数值,比如bins=10,则会将数据进行分箱(binning),返回每个箱中的数据频数,而不是每个唯一值的频数。

892-2-5、dropna(可选,默认值为True)表示控制是否排除NaN值,当dropna=True时,NaN值会被忽略;当dropna=False时,NaN值也会计入统计。

892-3、功能

        用于计算索引中各个唯一值的出现次数,并返回一个按频率排序的Series,该功能在数据分析中非常有用,特别是当需要了解数据的分布情况时。

892-4、返回值

        返回值是一个pandas.Series对象,其中索引为唯一值或区间,值为相应的频数或频率(当normalize=True时),返回的Series会根据sort和ascending参数的设定进行排序。

892-5、说明

        无

892-6、用法
892-6-1、数据准备
892-6-2、代码示例
# 892、pandas.Index.value_counts方法
import pandas as pd
index = pd.Index([1, 2, 2, 3, 3, 3, None, None, 4])
# 默认使用
result = index.value_counts()
# 自定义参数使用
result_normalized = index.value_counts(normalize=True)
result_bins = index.value_counts(bins=3)
result_dropna = index.value_counts(dropna=False)
print("默认频数统计:\n", result)
print("相对频率统计:\n", result_normalized)
print("分箱后的频数统计:\n", result_bins)
print("包括缺失值的频数统计:\n", result_dropna)
892-6-3、结果输出
# 892、pandas.Index.value_counts方法
# 默认频数统计:
#  3.0    3
# 2.0    2
# 1.0    1
# 4.0    1
# Name: count, dtype: int64
# 相对频率统计:
#  3.0    0.428571
# 2.0    0.285714
# 1.0    0.142857
# 4.0    0.142857
# Name: proportion, dtype: float64
# 分箱后的频数统计:
#  (0.996, 2.0]    3
# (2.0, 3.0]      3
# (3.0, 4.0]      1
# Name: count, dtype: int64
# 包括缺失值的频数统计:
#  3.0    3
# 2.0    2
# NaN    2
# 1.0    1
# 4.0    1
# Name: count, dtype: int64
893、pandas.Index.set_names方法
893-1、语法
# 893、pandas.Index.set_names方法
pandas.Index.set_names(names, *, level=None, inplace=False)
Set Index or MultiIndex name.

Able to set new names partially and by level.

Parameters:
nameslabel or list of label or dict-like for MultiIndex
Name(s) to set.

Changed in version 1.3.0.

levelint, label or list of int or label, optional
If the index is a MultiIndex and names is not dict-like, level(s) to set (None for all levels). Otherwise level must be None.

Changed in version 1.3.0.

inplacebool, default False
Modifies the object directly, instead of creating a new Index or MultiIndex.

Returns:
Index or None
The same type as the caller or None if inplace=True.
893-2、参数

893-2-1、names(必需)表示要设置的索引名称,可以是单个字符串或字符串列表,如果是单个字符串,则将设置所有级别的名称;如果是字符串列表,则每个字符串对应一个级别的名称。

893-2-2、level(可选,默认值为None)指定要设置名称的级别,如果未指定,则设置所有级别的名称,可以是整数或字符串,表示级别的索引或名称。

893-2-3、inplace(可选,默认值为False)布尔值,如果为True,则直接修改原索引对象;如果为False,则返回一个新的索引对象。

893-3、功能

        设置索引的名称,包括多级索引的名称,可以设置所有级别的名称,也可以指定某个级别的名称。

893-4、返回值

        如果inplace=False(默认),则返回一个新的索引对象,其名称已被设置;如果inplace=True,则不返回任何值,直接修改原索引对象。

893-5、说明

        无

893-6、用法
893-6-1、数据准备
893-6-2、代码示例
# 893、pandas.Index.set_names方法
import pandas as pd
# 创建一个多级索引
index = pd.MultiIndex.from_tuples([('A', 'a'), ('A', 'b'), ('B', 'a'), ('B', 'b')])
# 设置所有级别的名称
index = index.set_names(['一级', '二级'])
print("设置所有级别的名称后:", index.names)
# 直接在原索引对象上修改名称(使用 inplace=True)
index.set_names(['一级', '新二级'], inplace=True)
print("直接在原索引对象上修改名称后:", index.names)  
893-6-3、结果输出
# 893、pandas.Index.set_names方法
# 设置所有级别的名称后: ['一级', '二级']
# 直接在原索引对象上修改名称后: ['一级', '新二级']
894、pandas.Index.droplevel方法
894-1、语法
# 894、pandas.Index.droplevel方法
final pandas.Index.droplevel(level=0)
Return index with requested level(s) removed.

If resulting index has only 1 level left, the result will be of Index type, not MultiIndex. The original index is not modified inplace.

Parameters:
level
int, str, or list-like, default 0
If a string is given, must be the name of a level If list-like, elements must be names or indexes of levels.

Returns:
Index or MultiIndex
894-2、参数

894-2-1、level(可选,默认值为0)int或者str或者list,指定要删除的层级索引,当只有一个层级时,无法删除,会引发错误。

  • int:表示要删除的层级索引的索引号,索引层级从0开始计数。
  • str:表示要删除的层级索引的名称,如果MultiIndex的层级索引有名称,可以直接指定名称删除。
  • list:如果有多个层级要删除,可以提供一个包含层级索引的列表。
894-3、功能

        删除指定的索引层级,当你在pandas中使用多层索引时,有时可能希望简化索引层级,去除某一层索引,这时可以用droplevel来完成。

894-4、返回值

        返回一个新的Index或者MultiIndex对象,返回的索引类型取决于删除层级后的剩余层数:

  • 如果删除后只剩下单层索引,则返回一个普通的Index对象。
  • 如果删除后仍有多层,则返回一个MultiIndex对象。
894-5、说明

        无

894-6、用法
894-6-1、数据准备
894-6-2、代码示例
# 894、pandas.Index.droplevel方法
# 894-1、删除单层索引
import pandas as pd
index = pd.MultiIndex.from_tuples([(1, 'a'), (2, 'b'), (3, 'c')], names=['number', 'letter'])
df = pd.DataFrame({'value': [10, 20, 30]}, index=index)
print(df)
df.index = df.index.droplevel(level='number')
print(df, end='\n\n')

# 894-2、删除多层索引
import pandas as pd
index = pd.MultiIndex.from_tuples([(1, 'a', 'X'), (2, 'b', 'Y'), (3, 'c', 'Z')], names=['number', 'letter', 'code'])
df = pd.DataFrame({'value': [10, 20, 30]}, index=index)
print(df)
df.index = df.index.droplevel(level=['number', 'letter'])
print(df)
894-6-3、结果输出
# 894、pandas.Index.droplevel方法
# 894-1、删除单层索引
#                value
# number letter
# 1      a          10
# 2      b          20
# 3      c          30
#         value
# letter
# a          10
# b          20
# c          30

# 894-2、删除多层索引
#                    value
# number letter code       
# 1      a      X        10
# 2      b      Y        20
# 3      c      Z        30
#       value
# code       
# X        10
# Y        20
# Z        30
895、pandas.Index.dropna方法
895-1、语法
# 895、pandas.Index.dropna方法
pandas.Index.dropna(how='any')
Return Index without NA/NaN values.

Parameters:
how
{‘any’, ‘all’}, default ‘any’
If the Index is a MultiIndex, drop the value when any or all levels are NaN.

Returns:
Index
895-2、参数

895-2-1、how(可选,默认值为'any')字符串,可选值有:

  • 'any': 如果索引中有任何缺失值(NaN),则返回一个不包含这些缺失值的新索引。
  • 'all': 如果索引中的所有元素都是缺失值,将返回该索引空的副本。
895-3、功能

        从Index对象中删除缺失值,有助于在数据处理和分析时清理索引,使其只包含有效的(非缺失的)值。

895-4、返回值

        返回一个新的Index对象,其中不包含已删除的缺失值(NaN),如果所有值都被删除(在'all'的情况下)或原索引中没有缺失值(在'any'的情况下),则返回的Index对象可能和原索引相同或为空。

895-5、说明

        无

895-6、用法
895-6-1、数据准备
895-6-2、代码示例
# 895、pandas.Index.dropna方法
import pandas as pd
import numpy as np
# 创建一个含有缺失值的索引
index = pd.Index([1, 2, np.nan, 4, 5, np.nan])
# 删除任何缺失值
new_index_any = index.dropna(how='any')
print(new_index_any)
# 如果删除所有缺失值
new_index_all = index.dropna(how='all')
print(new_index_all)  
895-6-3、结果输出
# 895、pandas.Index.dropna方法 
# Index([1.0, 2.0, 4.0, 5.0], dtype='float64')
# Index([1.0, 2.0, 4.0, 5.0], dtype='float64')

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页

标签:Index,892,894,index,Python,192,索引,酷库,pandas
From: https://blog.csdn.net/ygb_1024/article/details/143422134

相关文章

  • 讲解Python选择语句
    Python选择语句1.`if`语句语法:示例:2.`else`语句语法:示例:3.`elif`语句语法:示例:4.嵌套选择语句示例:5.条件表达式(TernaryOperator)示例:6.布尔值与条件表达式示例:7.多重条件判断示例:8.总结与应用场景Python中的选择语句(也称为条件语句)用于根据不同的条......
  • python+flask计算机毕业设计果园管理系统(程序+开题+论文)
    文件加密系统的设计与实现tp835本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于果园管理系统的研究,现有研究多侧重于果园的生产环节管理,如自动化灌溉、病虫害监测等技术层面的应......
  • python+flask计算机毕业设计共享自习室小程序(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于共享自习室小程序的研究,现有研究多侧重于自习室的基本功能和运营模式等方面,如自习室的预约、计费等基础功能的实现。专门针对将......
  • python+flask计算机毕业设计广电集团客户管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于广电集团客户管理系统的研究,现有研究多集中于广播电视业务的传播、技术革新等方面,专门针对广电集团客户管理系统的研究较少。在客......
  • python+flask计算机毕业设计高校学生课堂考勤打卡APP的设计和实现(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于高校学生课堂考勤的研究,现有研究多集中在传统点名方式的改进以及基于单一技术的考勤系统开发。例如,有的研究专注于利用蓝牙技术实......
  • python+flask计算机毕业设计好骑行打卡园app系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容好骑行打卡园app系统毕业设计相关内容一、选题背景关于骑行打卡类APP的研究,现有研究主要以骑行记录和路线规划为主,专门针对骑行打卡园这种集打卡......
  • python+flask计算机毕业设计个人健康管理小程序(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容个人健康管理小程序毕业设计说明一、选题背景关于个人健康管理小程序的研究,现有研究主要以综合性健康管理系统为主,专门针对小程序形式的个人健康......
  • 使用Python Flask实战构建Web应用
     你是否曾想过,使用Python来快速搭建一个Web应用?Flask作为一个轻量级的Web框架,因其简单、灵活且高效,成为了很多开发者首选的工具。今天,就让我们一同走进Flask的世界,探索如何使用它轻松构建一个实战Web应用!为什么Flask是Python开发者中最受欢迎的Web框架之一?它到底有哪些独特的......
  • python转义字符(小白详细解答)
    python转义字符(详细解答)小白初来乍到,请多多关照,如发现文章中有错误请及时提醒,进行修改转义字符是字符串中拥有特殊功能的字符,在字符串中不会显现出来,而是表示特殊功能的字符1.1换行符\n:换行符,将一串字符串进行分割并换行print("1.换行符:""abcd\na1b1c1d1") #1.换......
  • python运算符
    python运算符新手刚刚入行,请多多关照,如发现错误请及时联系1.算数运算符算数运算符包括(+(加),-(减),*(乘),/除,%(求余),//(整除),**(整除))运算符说明实例+加:两个数值先运算再赋值12.5+1.5=14-减:两数相减,结果是正数或者负数12.5-13.5=-1*乘:两数相乘,或返回一个被......