Python数据分析与展示:DataFrame类型索引操作-10

简介: Python数据分析与展示:DataFrame类型索引操作-10

DataFrame对象操作

重新索引

.reindex()能够改变或重排Series和DataFrame索引

.reindex(index=None, columns=None,…)的参数

参数

说明

index, columns

新的行列自定义索引

fill_value

重新索引中,用于填充缺失位置的值

method

填充方法, ffill当前值向前填充,bfill向后填充

limit

最大大填充量

copy

默认True,生成新的对象,False时,新旧相等不复制

索引类型

Series和DataFrame的索引是Index类型

Index对象是不可修改类型

索引类型常用方法

方法

说明

.append(idx)

连接另一个Index对象,产生新的Index对象

.diff(idx)

计算差集,产生新的Index对象

.intersection(idx)

计算交集

.union(idx)

计算并集

.delete(loc)

删除loc位置处的元素

.insert(loc,e)

在loc位置增加一个元素e

.drop()能够删除Series和DataFrame指定行或列索引

代码示例

# -*- coding: utf-8 -*-
# @File    : dataframe_demo2.py
# @Date    : 2018-05-20
# DataFrame对象操作
from pandas import DataFrame
dt = {
    "城市": ["北京", "上海", "南京", "天津"],
    "人口": [200, 20, 30, 40],
    "收入": [10, 20, 40, 50]
}
df = DataFrame(dt, index=["c1", "c2", "c3", "c4"])
print(df)
"""
    城市   人口  收入
c1  北京  200  10
c2  上海   20  20
c3  南京   30  40
c4  天津   40  50
"""
# 重新索引行,排序
df2 = df.reindex(index=["c4", "c3", "c2", "c1"])
print(df2)
"""
    城市   人口  收入
c4  天津   40  50
c3  南京   30  40
c2  上海   20  20
c1  北京  200  10
"""
# 重新索引列,排序
df3 = df.reindex(columns=["城市", "收入", "人口"])
print(df3)
"""
    城市  收入   人口
c1  北京  10  200
c2  上海  20   20
c3  南京  40   30
c4  天津  50   40
"""
# 插入列索引
col = df.columns.insert(3, "新增")
print(col)
"""
Index(['城市', '人口', '收入', '新增'], dtype='object')
"""
# 增加数据,默认填充200
df4 = df.reindex(columns=col, fill_value=200)
print(df4)
"""
    城市   人口  收入   新增
c1  北京  200  10  200
c2  上海   20  20  200
c3  南京   30  40  200
c4  天津   40  50  200
"""
# 删除插入索引
nc = df.columns.delete(2)
ni = df.index.insert(5, "c0")
df5 = df.reindex(index=ni, columns=nc)
print(df5)
"""
     城市     人口
c1   北京  200.0
c2   上海   20.0
c3   南京   30.0
c4   天津   40.0
c0  NaN    NaN
"""
# DataFrame删除行
df6 = df5.drop("c1")
print(df6)
"""
     城市    人口
c2   上海  20.0
c3   南京  30.0
c4   天津  40.0
c0  NaN   NaN
"""
# DataFrame删除列
df7 = df6.drop("人口", axis=1)
print(df7)
"""
     城市
c2   上海
c3   南京
c4   天津
c0  NaN
"""


相关文章
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
619 2
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
809 0
|
IDE 开发工具 开发者
Python类型注解:提升代码可读性与健壮性
Python类型注解:提升代码可读性与健壮性
541 102
|
索引 Python
Python的变量和简单类型
本文介绍了Python中变量命名规则、常用变量类型及字符串操作。变量命名需遵循字母、数字和下划线组合,不能以数字开头且不可与关键字冲突。字符串支持单引号、双引号或三引号定义,涵盖基本输出、转义字符、索引、拼接等操作。此外,还详细解析了字符串方法如`islower()`、`upper()`、`count()`等,帮助理解字符串处理技巧。
406 15
|
安全 JavaScript Java
Python中None与NoneType的真相:从单例对象到类型系统的深度解析
本文通过10个真实场景,深入解析Python中表示“空值”的None与NoneType。从单例模式、函数返回值,到类型注解、性能优化,全面揭示None在语言设计与实际编程中的核心作用,帮助开发者正确高效地处理“无值”状态,写出更健壮、清晰的Python代码。
4526 3
|
Python
Python技术解析:了解数字类型及数据类型转换的方法。
在Python的世界里,数字并不只是简单的数学符号,他们更多的是一种生动有趣的语言,用来表达我们的思维和创意。希望你从这个小小的讲解中学到了有趣的内容,用Python的魔法揭示数字的奥秘。
355 26
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
407 0
|
IDE API 开发工具
Python类型注解:让代码“开口说话”的隐形助手
Python类型注解为动态语言增添类型信息,提升代码可读性与健壮性。通过变量、函数参数及返回值的类型标注,配合工具如mypy、IDE智能提示,可提前发现类型错误,降低调试与协作成本。本文详解类型注解的实战技巧、生态支持及最佳实践,助你写出更高质量的Python代码。
578 0
|
人工智能 安全 IDE
Python 的类型安全是如何实现的?
本文探讨了 Python 的类型安全实现方式。从 3.5 版本起,Python 引入类型提示(Type Hints),结合静态检查工具(如 mypy)和运行时验证库(如 pydantic),增强类型安全性。类型提示仅用于开发阶段的静态分析,不影响运行时行为,支持渐进式类型化,保留动态语言灵活性。泛型机制进一步提升通用代码的类型安全性。总结而言,Python 的类型系统是动态且可选的,兼顾灵活性与安全性,符合“显式优于隐式”的设计哲学。
426 2
|
Python
解决Python报错:DataFrame对象没有concat属性的多种方法(解决方案汇总)
总的来说,解决“DataFrame对象没有concat属性”的错误的关键是理解concat函数应该如何正确使用,以及Pandas库提供了哪些其他的数据连接方法。希望这些方法能帮助你解决问题。记住,编程就像是解谜游戏,每一个错误都是一个谜题,解决它们需要耐心和细心。
728 15

推荐镜像

更多