Python数据分析系列5---DataFrame数据操作

4.2 掌握DataFrame的常用操作 【代码】4.2 掌握DataFrame的常用操作。 阅读详情

1、索引对象index

pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index:

In [76]: obj = pd.Series(range(3), index=['a', 'b', 'c'])

In [77]: index = obj.index

In [78]: index
Out[78]: Index(['a', 'b', 'c'], dtype='object')

In [79]: index[1:]
Out[79]: Index(['b', 'c'], dtype='object')

Index对象是不可以赋值修改的,具有不可变性。不可变使得Index对象在多个数据结构之间安全共享。

2、Series和DataFrame中数据的基本手段

2.1 重新索引

        ①pandas对象的方法reindex:其作用是创建一个新对象,它的数据符合新的索引排序。

obj2 = obj.reindex(['a','b','c','d','e'])

        ②reinex方法的method选项:实现前项值填充:

In [95]: obj3 = pd.Series(['blue', 'purple', 'yellow'], index=[0, 2, 4])

In [96]: obj3
Out[96]: 
0      blue
2    purple
4    yellow
dtype: object

In [97]: obj3.reindex(range(6), method='ffill')
Out[97]: 
0      blue
1      blue
2    purple
3    purple
4    yellow
5    yellow
dtype: object

        ③DataFrame中的reindex方法

        reindex可以修改(行)索引和列。只传递一个序列时,会重新索引结果的行:

重新索引行:frame2 = frame.reindex(['a', 'b', 'c', 'd'])

重新索引列:states = ['Texas', 'Utah', 'California']

                      frame.reindex(columns=states)

2.2  丢弃指定轴上的项

        丢弃某条轴上的一个或多个项很简单,只要有一个索引数组或列表即可。由于需要执行一些数据整理和集合逻辑,所以drop方法返回的是一个在指定轴上删除了指定值的新对象:

In [105]: obj = pd.Series(np.arange(5.), index=['a', 'b', 'c', 'd', 'e'])

In [106]: obj
Out[106]: 
a    0.0
b    1.0
c    2.0
d    3.0
e    4.0
dtype: float64

In [107]: new_obj = obj.drop('c')

In [108]: new_obj
Out[108]: 
a    0.0
b    1.0
d    3.0
e    4.0
dtype: float64

In [109]: obj.drop(['d', 'c'])
Out[109]: 
a    0.0
b    1.0
e    4.0
dtype: float64

        DataFrame可以删除任意轴上的索引值,用标签序列调用drop会从行标签(axis 0)删除值(默认):

In [112]: data.drop(['Colorado', 'Ohio'])
Out[112]: 
          one  two  three  four
Utah        8    9     10    11
New York   12   13     14    15

        通过传递axis=1或axis='columns'可以删除列的值:

In [113]: data.drop('two', axis=1)
Out[113]: 
          one  three  four
Ohio        0      2     3
Colorado    4      6     7
Utah        8     10    11
New York   12     14    15

In [114]: data.drop(['two', 'four'], axis='columns')
Out[114]: 
          one  three
Ohio        0      2
Colorado    4      6
Utah        8     10
New York   12     14

        可以使用inplace关键字,指定替代原来的对象而不是产生新的对象: 

In [115]: obj.drop('c', inplace=True)

In [116]: obj
Out[116]: 
a    0.0
b    1.0
d    3.0
e    4.0
dtype: float64

小心使用inplace,它会销毁所有被删除的数据。

2.3  索引、选取和过滤 

        Series索引(obj[...])的工作方式类似于NumPy数组的索引,只不过Series的索引值不只是整数。下面是几个例子:

obj = pd.Series(np.arange(4.), index=['a', 'b', 'c', 'd'])
obj['b']
obj[['b', 'a', 'd']]
obj[1]
obj[2:4]
obj[[1, 3]]
obj[obj < 2]

利用标签的切片运算与普通的Python切片运算不同,其末端是包含的: 

In [125]: obj['b':'c']
Out[125]:
b    1.0
c    2.0
dtype: float64

        DataFrame索引:用一个值或序列对DataFrame进行索引其实就是获取一个或多个列。

    data = pd.DataFrame(np.arange(16).reshape((4, 4)),
    index=['Ohio', 'Colorado', 'Utah', 'New York'],
    columns=['one', 'two', 'three', 'four'])

        选取列:
        向[ ]传递单一的元素或列表,就可选择列。
        data['two']
        data[['three', 'one']]
        选取行:
        切片或布尔型数组选取数据
        data[:2]
        data[data['three'] > 5]
        选取行的语法data[:2]十分方便。

另一种用法是通过布尔型DataFrame(比如下面这个由标量比较运算得出的)进行索引:

In [134]: data < 5
Out[134]: 
            one    two  three   four
Ohio       True   True   True   True
Colorado   True  False  False  False
Utah      False  False  False  False
New York  False  False  False  False

In [135]: data[data < 5] = 0

In [136]: data
Out[136]: 
          one  two  three  four
Ohio        0    0      0     0
Colorado    0    5      6     7
Utah        8    9     10    11
New York   12   13     14    15

2.4 用loc和iloc进行选取 

        对于DataFrame的行的标签索引,有特殊的标签运算符LOC和iloc,使用轴标签(loc)或整数索引(iloc),从DataFrame选择行和列的子集:

In [137]: data.loc['Colorado', ['two', 'three']]
Out[137]: 
two      5
three    6
Name: Colorado, dtype: int64
```

        ‘‘‘用iloc和整数进行选取’’’
```python
In [138]: data.iloc[2, [3, 0, 1]]
Out[138]: 
four    11
one      8
two      9
Name: Utah, dtype: int64

In [139]: data.iloc[2]
Out[139]: 
one       8
two       9
three    10
four     11
Name: Utah, dtype: int64

In [140]: data.iloc[[1, 2], [3, 0, 1]]
Out[140]: 
          four  one  two
Colorado     7    0    5
Utah        11    8    9

loc和iloc这两个索引函数也适用于一个标签或多个标签的切片:

data.loc[:'Utah', 'two']

data.iloc[:, :3][data.three > 5]

 Series和DataFrame的算术方法

它们每个都有一个副本,以字母r开头,它会翻转参数。因此这两个语句是等价的:

2.6  DataFrame和Series之间的运算   

        与不同维度的Numpy数组的运算相似,DataFrame和Series之间的运算遵循广播(broadcast)机制,当从arr减去arr[0],每一行都会执行这个操作:

In [176]: arr
Out[176]: 
array([[  0.,   1.,   2.,   3.],
       [  4.,   5.,   6.,   7.],
       [  8.,   9.,  10.,  11.]])

In [177]: arr[0]
Out[177]: array([ 0.,  1.,  2.,  3.])

In [178]: arr - arr[0]
Out[178]: 
array([[ 0.,  0.,  0.,  0.],
       [ 4.,  4.,  4.,  4.],
       [ 8.,  8.,  8.,  8.]])

DataFrame和Series之间的运算差不多也是如此:

In [179]: frame = pd.DataFrame(np.arange(12.).reshape((4, 3)),
   .....:                      columns=list('bde'),
   .....:                      index=['Utah', 'Ohio', 'Texas', 'Oregon'])

In [180]: series = frame.iloc[0]

In [181]: frame
Out[181]: 
          b     d     e
Utah    0.0   1.0   2.0
Ohio    3.0   4.0   5.0
Texas   6.0   7.0   8.0
Oregon  9.0  10.0  11.0

In [182]: series
Out[182]: 
b    0.0
d    1.0
e    2.0
Name: Utah, dtype: float64

默认情况下,DataFrame和Series之间的算术运算会将Series的索引匹配到DataFrame的列,然后沿着行一直向下广播:

In [183]: frame - series
Out[183]: 
          b    d    e
Utah    0.0  0.0  0.0
Ohio    3.0  3.0  3.0
Texas   6.0  6.0  6.0
Oregon  9.0  9.0  9.0

DataFrame的基本用法 定义一个空的DataFramedf = pd.DataFrame(data=None,columns=range(1,5),index=[0,1]) # 从列表定义,定义列名和行名dfdf = pd.DataFrame(columns={"a":"","b":""},index=[0,1,2]) #从字典定义df。 阅读详情

相关推荐

Pandas—dataframe数据分析

()方法返回的是去重之后的不同值,而nunique()方法则直接返回不同值的个数,并且在len(unique())是包含空值的返回值,而nunique()是不包含空值的,但是nunique(dropna=False。dataframe没有unique()这个方法,只有nunique()这个方法,而series有unique()方法也有nunique()方法。聚合函数有:max(),min(),mean(),count(),value_count(),unique(),nunique()等等。

qq_57669293的博客 1952

python pandas DataFrame.apply调用自定义函数

DataFrame.apply调用自定义函数 DataFrame.apply(self, func, axis=0, broadcast=None, raw=False, reduce=None, result_type=None, args=(), **kwds) 按指定行/列传输到函数,调用函数进行数据处理,并返回按行/列计算值 统计列为空值的数量 #创建函数计算列空值 def not_nu...

rankiy的博客 1万+

Python数据分析(一课一得)中的DataFrame表格对象的运用

在Python数据分析中,DataFrame是一个重要的数据结构,它提供了一种灵活的方式来处理、操作和分析结构化数据。DataFrame可以看作是一种二维表格,类似于电子表格或关系型数据库中的表格,它具有行索引和列索引,可以存储不同类型的数据(如数值、字符串等)。可以使用describe方法来查看DataFrame的统计摘要,包括计数、均值、标准差、最小值、最大值等。

ywsf13的博客 1206

pandas-DataFrame的基本操作

使用python对csv或者是excel文件进行处理的时候,经常会使用到第三方库:pandas,并且在pandas中经常会使用到的是表结构的数据结构:DataFrame,下面是关于DataFrame的一些基本操作 1. 创建DataFrame 创建DataFrame有以下两种常用的方法进行创建:① 列表 ② 字典 创建data的时候需要调用pandas中的DataFrame函数并且传入data、index、columns参数,data表示数据,index表示行标签,column表示列标签 arr

二哈 4390

利用Python进行数据分析系列之:DataFrame

DataFrame是一个表格型的数据结构,含有一组有序的列,妹列可以是不同的值类型(数值、字符串、布尔值等)。 DataFrame即有行索引也有列索引。 一、构建DataFrame 构建DataFrame

zhengzaifeidelushang的博客 887

100天精通Python(数据分析篇)——第55天:Pandas之DataFrame对象基础大总结

每篇前言 一、什么是DataFrame? 二、创建DataFrame对象 1. list列表构建DataFrame 2. dict字典构建DataFrame 3. ndarray创建DataFrame 4. Series创建DataFrame 三、列索引操作 1. 读取单列 2. 读取不连续索引 3. 添加新列 4. 删除列 四、索引读取数据

努力让自己发光,对的人才能迎着光而来 12万+

Pandas.DataFrame 的使用方法

DataFrame 的使用方法

Mark_Australia的博客 1万+

python - DataFrame查询数据操作

学习目标 掌握获取df一列或多列数据的方法 知道loc和iloc的区别以及使用方法 知道df的query函数的使用方法 知道isin函数的作用和使用方法 获取DataFrame子集的基本方法 1.1 从前从后获取多行数据 案例中用到的数据集在文章顶部 LJdata.csv 前景回顾 head() & tail() import pandas as pd ​ # 加载csv数据集 df = pd.read_csv('LJdata.cs

m0_74051333的博客 1587

python使用pandas模块介绍以及使用,dataframe结构,Series结构,基本数据操作,DataFrame运算,pandas画图,存储,缺失值处理,离散化,合并

目录1 pandas介绍1.1 Pandas介绍1.2 为什么使用Pandas1.3 案例:在numpy当中创建的股票涨跌幅数据形式1.4 DataFrame1.4.1 DataFrame结构1.4.2 DatatFrame的常用属性和方法 1 pandas介绍 1.1 Pandas介绍 面板 数据 (三维数据)分析 计量经济学(数据分析80% 跑计量20%) 以Numpy为基础,借力Numpy模块在计算方面性能高的优势 基于matplotlib,能够简便的画图 独特的数据结构 1.2 为什么使用Pa

weixin_55579895的博客 7480

A2B音频总线在智能座舱中的应用

车载A2B链路音频是智能座舱的核心功能,涵盖车载音响、语音识别、e-Call、消噪及回声消除等应用,随着汽车智能网联化的发展,对音频的开发要求也越来越高,需要加入更先进、功能丰富的信息娱乐功能以满足消费者的用户体验。但传统的模拟并行音频信号传输方式,难以在功能增加与整车轻量化(线缆的重量及成本减少)之间取得均衡。这时候就需要A2B音频总线了。A2B音频总线用于连接车辆中的音频设备,如麦克风(MIC)、功放(AMP)、多媒体主机(Head Unit)和T-BOX等。通过一条低成本的非屏蔽双绞线UTP,进行跨距

怿星科技的博客 3935

TC275-AutoSAR实战:Davinci Cfg多核OS配置与调试技巧

本文详细介绍了在TC275芯片上使用Davinci Cfg工具进行AutoSAR多核操作系统配置的实战步骤与调试技巧。内容涵盖从导入arxml文件的常见“坑”开始,到配置Det、EcuC、创建多核OS实例、关联OS应用、创建任务与设置优先级调度,最后分享了利用Det日志、调试器多核视图及处理核间通信与缓存一致性等关键调试方法,旨在帮助开发者高效完成复杂车载ECU软件集成。

weixin_29219189的博客 489

python dataframe函数_python pandas中DataFrame类型数据操作函数的方法

这篇文章主要介绍了关于python pandas中DataFrame类型数据操作函数的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下python数据分析工具pandas中DataFrame和Series作为主要的数据结构.本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数。1)查看DataFrame数据及属性df_obj = DataFrame() #...

weixin_39528289的博客 1784

基于LabVIEW控制仪器检测与监控 --普源示波器DS1102Z-E

LabVIEW 控制普源示波器 代码实现与解释

s0101100的博客 4233

python查看dataframe数据类型_python pandas中DataFrame类型数据操作函数的方法

python数据分析工具pandas中DataFrame和Series作为主要的数据结构.本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数。1)查看DataFrame数据及属性df_obj = DataFrame() #创建DataFrame对象df_obj.dtypes #查看各行的数据格式df_obj['列名'].astype(int)#转换某列的数据类型df_ob...

weixin_39922929的博客 1万+

手把手教你用STM32的ADC读取PT100模块,实现高精度温度采集(附完整代码)

本文详细介绍了如何利用STM32的ADC模块读取PT100温度传感器信号,实现高精度温度采集系统。从硬件选型、ADC配置校准到温度计算算法和软件滤波技术,提供完整的实现方案和优化技巧,帮助工程师快速构建稳定可靠的温度监测系统。

weixin_29185199的博客 347

工业质检实战:如何用MVTec AD数据集训练你的第一个无监督异常检测模型

本文提供了一份基于MVTec AD数据集的工业质检实战指南,详细介绍了如何从零开始训练一个无监督异常检测模型。内容涵盖数据预处理、模型架构选型(如CAE、GAN与特征字典方法)、特征提取、损失函数设计以及关键的阈值确定与后处理流程,旨在帮助工程师快速掌握将AI技术落地于实际产线质检的核心步骤与调参经验。

weixin_29182481的博客 459

dataframe去掉索引 python_Python数据分析系列文章之Pandas(上)

本篇是【机器学习与数据挖掘】头条号原创首发Python数据分析系列文章的第三篇Python数据分析系列文章之Python基础篇Python数据分析系列文章之NumpyPython数据分析系列文章之Pandas(上)Python数据分析系列文章之Pandas(下)Python数据分析系列文章之ScipyPython数据分析系列文章之MatplotlibPython数据分析系列文章之SeabornPy...

weixin_30986079的博客 2646

轴承故障诊断——领域知识

幅域分析、频域分析及轴承方面的领域知识

qq_58516607的博客 3534

python dataframe详细使用方法

dataframe为pandas中的数据格式,通常用来存储时间序列数据,比如K线数据,这在量化分析时通常用到。 1、创建dataframe import pandas as pd df0 = pd.DataFrame([[1,2,3,4],[5,6,7,8]], columns=['a', 'b', 'c', 'd']) 2、读取csv文件为dataframe格式 df0 = pd.read_csv(data_path) 3、获取column列栏目名称,行索引名,全部数值 df0.colu

叶子的博客 1万+

DeerFlow 系列教程 第十一篇 | Sandbox 沙箱与 Memory 记忆——安全执行与持久认知

用户请求│▼Lead Agent├── 系统提示词组装│ ├── <memory> 段 ← Memory 系统注入用户记忆│ ├── <skill_system> 段│ └── <subagent_system> 段│├── 工具调用│ ├── read_file ├── Sandbox 系统提供隔离执行│ ├── write_file├── 路径虚拟化 + 安全验证│└── 对话结束│▼│├── 过滤消息(去除工具调用中间步骤)├── 检测纠正/强化信号。

weixin_43674738的博客 161

详细推导波特图增益和相位曲线

最近因为项目需求,在回看波特图方面的内容。大三那会,《自动控制原理》这本书里面就讲过这些东西,但是那时候总感觉学这些没啥用,反正以后也用不到,对这种课程的重视度不是很高。 工作后发现,只要你从事的是和本专业相关的工作,大学学过的很多理论课程在后面大概率都会用到。曾经那些我们在学校以为用不上的东西,熟不知在后面用处还多着呢。所以啊,仅仅只是我们的以为而已! 现在还在学校的同学,对待《自动控制理论》、《信号与系统》、《通信原理》这样的核心专业课,建议还是好好学习一下,认真听听课。哪怕是考试完以后就会忘掉,但当我

D_Katter的博客 3936

python数据分析 pandas库-数据操作

at和iat:用于访问单个标量元素,at基于标签,iat基于位置。loc和iloc:用于选取数据,loc基于标签,iloc基于位置。xs:用于获取跨切片数据。query:用于表达式查询。where:用于条件筛选和替换。缺失值处理isna()dropna()fillna()重复数据处理异常值处理:使用统计方法如 Z-Score 和 IQR数据类型转换astype()文本数据清理replace()数据转换apply()map()分类数据处理基本统计描述describe()聚合函数mean()

diaobusi的博客 2419

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

dataframe两个表合并_Python数据分析:Pandas之DataFrame

内容目录DataFrame简介DataFrame创建方式DataFrame索引和切片DataFrame属性DataFrame级联与合并DataFrame基本操作DataFrame分组聚合操作DataFrame数据透视与交叉表1 DataFrame简介我们在上次课中讲到了Pandas的Series结构,还没看的点这里ailsa:python数据分析:Pandas之Series​zhuanlan.zh...

weixin_39745269的博客 2765

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Python DataFrame详解:构建、查询与数据操作

深入讲解Pandas中DataFrame的创建方式,包括从列表、字典和嵌套列表构造数据框,并详细演示如何通过loc和iloc进行行列选择、增删改查操作,以及空值处理等核心数据处理技巧,为数据分析打下坚实基础。

weixin_35516273的博客 1023

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Python Pandas 创建 DataFrame 的四种方法

Pandas 是 Python 的一个数据分析包,最初由 AQR Capital Management 于2008年4月开发,并于2009年底开源出来,目前由专注于 Python 数据包开发的 PyData 开发团队继续开发和维护,属于 PyData 项目的一部分。 Pandas 最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas 的名称来自于面板数据(panel data)和 Python数据分析(data analysis)。 在深度学习中 Panda

AItrust的博客 11万+

Python的DataFrame

在数据分析中,数据框架(DataFrame)是一个强大的工具。它能够让我们以一种结构化的方式来处理和分析数据。Python中的Pandas库为我们提供了这种数据结构。本文将带你从零开始,逐步深入了解DataFrame的各个方面,通过实际代码来展示其应用。点击进入官方文档DataFrame是Pandas库中的一个核心数据结构,它是一个二维标签化的数据结构,可以认为它是一个Excel表格或者SQL表,具有行标签和列标签。通过本文,我们了解了什么是DataFrame,如何创建它,以及一些基础和进阶的操作。

qq_74538234的博客 9855
上一篇: Python数据分析系列4---Pandas的数据结构
下一篇: 拔出移动硬盘提示“该设备正在使用”解决方法
webwow
博客等级 码龄7年 138粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值