Python数据分析pandas模块用法实例详解
作者:闲鱼!!! 发布时间:2023-01-25 00:47:29
目录
pandas
创建对象
Series
DataFrame
高级索引(花式索引)
loc标签索引
iloc 位置索引
ix 标签与位置混合索引
增加数据
本文实例讲述了Python数据分析pandas模块用法。分享给大家供大家参考,具体如下:
pandas
pandas10分钟入门,可以查看官网:10 minutes to pandas
也可以查看更复杂的cookbook
pandas是非常强大的数据分析包,pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包。就好比 Numpy的核心是 ndarray,pandas 围绕着 Series 和 DataFrame 两个核心数据结构展开 。Series和DataFrame 分别对应于一维的序列和二维表结构。
创建对象
常规导入方式:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
Series
Series 可以看做一个定长的有序字典,它是能够保存任何数据类型(整数,字符串,浮点数,Python对象等)的一维标记数组。
Series对象包含两个主要的属性:index 和 values。
数据可以是Python字典、 ndarray、scalar value标量值(如5)等
创建时有没有index都会设置默认下标,但是索引用的是数组时会默认使用创建时的索引
创建时还可以指定name名字属性,之后可以修改 rename
ser1 = pd.Series(range(10,15),index=list('ABCDE'))
print(ser1)
# 下标和索引等同
print(ser1['A'])
print(ser1[0])
输出:
A 10
B 11
C 12
D 13
E 14
dtype: int64
10
10
取连续多个数据时,下标取值不包含结束位置,索引切片包括结束位置
print(ser1['A':'D'])
print(ser1[0:3])
输出:
A 10
B 11
C 12
D 13
dtype: int64
A 10
B 11
C 12
dtype: int64
取多个数据、条件筛选(布尔索引)
# 注意里面是一个列表
print(ser1[[0,1,3]])
# 布尔索引
print(ser1[(ser1>12)&(ser1<15)])
DataFrame
DataFrame是二维标记数据结构。 您可以将其视为电子表格或SQL表,或Series对象。 它通常是最常用的pandans对象。 像Series一样,DataFrame接受许多不同种类的输入:
Dict of 1D ndarrays, lists, dicts, or Series
2-D numpy.ndarray
Structured or record ndarray
A Series
Another DataFrame
df1 = pd.DataFrame(np.random.randint(10,50,(3,4)), - index=list('ABC'),columns=list('abcd'))
index是行索引,colums是列索引
用字典创建时,键名就是列索引,而且键值可以为列表,会自动补齐
取单行或单列数据,取单个数据
# 列取值,取出的是一个series对象
print(df1['a'])
print(df1['a'].values)
# 取出一行数据的某一行数据,也就是单个数据
print(df1['a']['B']) # 这两个一样
print(df1['a'][1])
取不连续多列,取连续多列(默认不支持连续,需要高级索引)
# 取不连续多列
print(df1[['a','c']])
行索引,可以直接切片,但是默认不能不连续多行取值,下标同理
print('行索引取值##############')
print(df1['A':'A'])
# 取连续多行就是df1['A':'C']
高级索引(花式索引)
一般情况用于DataFrame,这里直接略过Series
loc标签索引
df1 = pd.DataFrame(np.random.randint(10,50,(5,4)), index=list('ABCDE'),columns=list('abcd'))
# 取单行,类型是series
print(df1.loc['A'])
print(type(df1.loc['A']))
# 取连续多行,类型是DataFrame
print(df1.loc['A':'C'])
# 如果没有index索引就用下标,可以取连续多行连续多列
print(df1.loc['A':'D','a':'c'])
# 取不连续多行不连续多列
print(df1.loc[['A','C'],['a','c']])
iloc 位置索引
iloc是下标和lo用法一样,但是下标索引左闭右开,loc是包括最后一位
# DataFrame
print(df1.iloc[0:2, 0]) # 注意和df1.loc['A':'C', 'a']的区别
print(df1.loc['A':'C', 'a'])
ix 标签与位置混合索引
博主使用的pandas 0.24.2版本已经弃用.ix了(warning但还能使用),所以也就不写了
ix是以上二者的综合,既可以使用索引编号,又可以使用自定义索引,要视情况不同来使用,
如果索引既有数字又有英文,那么这种方式是不建议使用的,容易导致定位的混乱。
增加数据
1 | 2 |
---|---|
增加一行数据 | 1.df1.loc[‘D'] = [1,2,3,4,5] 2.df1.loc[‘D'] = [np.random.randint(10,20)] |
增加一列数据 | df1. |
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/weixin_43158056/article/details/98074031
猜你喜欢
- 本文为大家分享了童年掌机游戏,基于pygame实现打砖块的具体代码,供大家参考,具体内容如下项目背景: 小时候有过一个掌机游戏机,里面有俄罗
- 1、为什么需要自变量选择?一个好的回归模型,不是自变量个数越多越好。在建立回归模型的时候,选择自变量的基本指导思想是少而精。丢弃了一些对因变
- 本文实例讲述了JavaScript基于setTimeout实现计数的方法。分享给大家供大家参考。具体实现方法如下:var count = 0
- 前言大家都知道Python 是一门强类型、动态类型检查的语言。所谓动态类型,是指在定义变量时,我们无需指定变量的类型,Python 解释器会
- 内容介绍以 Python 使用 线性回归 简单举例应用介绍回归分析。线性回归是利用线性的方法,模拟因变量与一个或多个自变量之间的关系;对于模
- Flask提供的模板引擎为Jinja2,易于使用,功能强大。模板仅仅是文本文件,它可以生成任何基于文本的格式(HTML、XML、CSV、La
- 热加载是指可以在不重启服务的情况下,保存后即可让更改的代码生效的一种开发模式。热加载可以显著的提升开发和调试的效率,有了热加载后,说明你不用
- 因为这两天在弄自己的一个问答程序www.sosoask.com ,结果发现开发人员把我的存储过程加密了,郁闷,还好找到解决方法了,现在共享下
- Python语言中import的使用很简单,直接使用 import module_name 语句导入即可。这里我主要写一下"imp
- 首先通过一个例子来看一下本文中可能用到的对象和相关概念。 #coding: UTF-8 import sys # 模块,sys指向这个模块对
- 一、愉客行车程监控并通知大概思路:用户填写指定信息在config.json文件中,通过定时访问网页,获取指定信息,从而达到对指定车程的监控1
- var str = "hello"; str += " world"; 后台所做工作: 1)创建存储
- 在各类的前端开发工具里,在功能上虽然Editplus显得有些“单薄”,但是仍然是很多我辈做开发的人们离不开的工具,因为他小巧,语言高亮,支持
- go语言并没有强制一定要使用一定的工作空间和项目结构,对于小型的go程序依靠go run等命令就可以直接编译运行。然而,保持良好的工作空间和
- 一、常见反爬机制及其破解方式封禁IP,使用cookie等前面文章已经讲过现在主要将下面的:~ 验证码 —> 文字验证码 —> O
- 使用下以两种方法时必须把字段设为”主键(PRIMARY KEY”或”唯一约束(UNIQUE)”。1:使用REPLACE INTO (此种方法
- 设计师在抱怨开发人员不尊重Web标准,后台开发人员在抱怨为什么不可以增加一个空格。PM在抱怨为什么项目总是因为那些看似简单的问题而延期……如
- MySQL是一个关系型数据库管理系统,官方网站是http://www.mysql.com/,分为MySQL Enterprise Editi
- 在索引列上使用函数使得索引失效的是常见的索引失效原因之一,因此尽可能的避免在索引列上使用函数。尽管可以使用基于函数的索引来解决索引失效的问题
- mysql行转列、列转行 语句不难,不做多余解释了,看语句时,从内往外一句一句剖析行转列 &nb