Python Pandas常用数据结构Series和DataFrame快速上手
Pandas是基于Numpy构建的,包含多种高级数据结构和工具的数据分析包。Pandas中常用的数据结构有Series和DataFrame。其中Series是一维数组,DataFrame是二维的表格型数据结构。可以认为DataFrame是多个Series的集合。
1. 定义
1.1 Series定义
先从Series的操作说起,首先是定义,可以通过列表来生成Series。每个Series都包含value值和index索引。不指定index时,系统默认索引为从0开始的自然数序列。
import pandas as pd
s = pd.Series(data=['西瓜', '南瓜', '冬瓜', '哈密瓜'], index=['a', 'b', 'c', 'd'])
print(s)
结果:
D:\Python36\python.exe C:/Users/17653/Desktop/测试.py
a 西瓜
b 南瓜
c 冬瓜
d 哈密瓜
dtype: object
1.2
DataFrame的定义
DataFrame的定义包含两种方式
(1) 由字典定义;
(2) 由Series定义的DataFrame会沿用Series的索引,行号等属性
import pandas as pd
s = pd.Series(data=['西瓜', '南瓜', '冬瓜', '哈密瓜'], index=['a', 'b', 'c', 'd'])
print(s)# 由字典定义
data = {'a': [1, 2, 3],'b': [2, 3, 4],'c': [3, 4, 5]}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])
print(df)
# 由Series定义
df2 = pd.DataFrame([s, s], index=['row1', 'row2'])
print(df2)
结果:
D:\Python36\python.exe C:/Users/17653/Desktop/测试.py
a 西瓜
b 南瓜
c 冬瓜
d 哈密瓜
dtype: objecta b c
row1 1 2 3
row2 2 3 4
row3 3 4 5a b c d
row1 西瓜 南瓜 冬瓜 哈密瓜
row2 西瓜 南瓜 冬瓜 哈密瓜
2.DataFrame的基础操作
我个人日常工作使用DataFrame数据结构比较多,对此作了一个总结。
对pandas提供的DataFrame数据结构进行操作,总让我有一种在使用Matlab的感觉,简单方便,可以通过切片,获取到任意想获取的片段。
2.1 数据切片操作
以1.2 DataFrame定义中的 df 为例,行列编号均从0开始。
df['a'] # 获取列名为‘a’的列,取出来类型为Series
df.loc['row1'] # 获取索引为‘row1’的行,取出来为Series
df.iloc[1,1] # 获取行列号为(1,1)的元素
df.iloc[0:2, 1] # 获取第0~1行,第1列的元素
# 不建议这样使用,会警告
df[df.a > 1][df.b > 3] # 获取df的‘a’列大于1且‘b’列大于3的元素
# 建议分开筛选
df2 = df[df.a > 1]
df3 = df2[df2.b > 3]
结果:
a b c
row1 11 22 33
row2 2 3 4
row3 3 4 5
获取列名为‘a’的列,取出来类型为Series
row1 11
row2 2
row3 3
Name: a, dtype: int64
获取索引为‘row1’的行,取出来为Series
a 11
b 22
c 33
Name: row1, dtype: int64
获取行列号为(1,1)的元素
3
获取第0~1行,第1列的元素
row1 22
row2 3
Name: b, dtype: int64
获取df的‘a’列大于1且‘b’列大于3的元素a b c
row1 11 22 33
row3 3 4 5
2.2 增加新列
可以通过多种方式为df增加新列
import pandas as pd
data = {'a': [11, 2, 3],'b': [22, 3, 4],'c': [33, 4, 5]}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])
print(df)
df['NewColumn'] = [1,2,3]
df['Num'] = 1 #增加‘Num’列,值全为1
df['NullColumn'] = pd.Series('', index=df.index) #定义列,赋空值
print(df)
结果:
D:\Python36\python.exe C:/Users/17653/Desktop/测试.pya b c
row1 11 22 33
row2 2 3 4
row3 3 4 5a b c NewColumn Num NullColumn
row1 11 22 33 1 1
row2 2 3 4 2 1
row3 3 4 5 3 1
后续接着整理一下数据处理中的空值处理、维度汇总、DataFrame的合并和轴向连接、读写Excel文件等等操作。加油
Python Pandas常用数据结构Series和DataFrame快速上手相关推荐
- Python Pandas 常用的数据结构有哪些?详解Series、DataFrame、Index数据结构。
Pandas常用数据结构 Pandas简介 Series 构建 Series 对象 通过数组/列表 通过ndarray 通过dict 指定index Series 数据结构 查看 Series 数据 ...
- Python Pandas 的使用——Series
Python Pandas 的使用--Series Pandas是一个强大的分析结构化数据的工具集:它的使用基础是Numpy(提供高性能的矩阵运算):用于数据挖掘和数据分析,同时也提供数据清洗功能. ...
- blankcount函数python,Python pandas常用函数详解
本文研究的主要是pandas常用函数,具体介绍如下. 1 import语句 2 文件读取 df = pd.read_csv(path='file.csv') 参数:header=None 用默认列名, ...
- Pandas系列(一):数据结构(Series、DataFrame、时间序列)
Pandas系列目录 文章目录 一. 简介 二. 思维导图 三. Pandas数据结构 1. Series 1.1 简介 1.2 创建Series 1.3 Series属性 1.4 索引切片 1.4. ...
- 【Python】Python常用的Series 和 Dataframe处理方法
Series 和 Dataframe格式的数据处理工作,有很多常用的也比较巧妙的小方法,现总结下,方便理解应用. 本文会已方法基础格式+代码样例的形式加以讲解说明. 一 基础方法介绍 Series 和 ...
- pandas两个数据结构Series与DataFrame使用
seires 对象 1.创建一个series对象 Series() 语法:s=pd.Series(data,index=index) 参数说明: data:表示数据,支持Python字典.多维数组.标 ...
- [转载] pandas入门:Series、DataFrame、Index基本操作都有了!
参考链接: 带有Pandas的Python:带有示例的DataFrame教程 导读:pandas是一款开放源码的BSD许可的Python库.它基于NumPy创建,为Python编程语言提供了高性能的. ...
- 【Pandas总结】第一节 Pandas 简介与Series,DataFrame的创建
文章目录 一.Pandas 简介 二.Pandas 数据结构 2.1 Series (一维数据) 2.2 DataFrame(二维数据) 三.Series 的创建 3.1 由数创建 3.2 由列表创建 ...
- pandas教程:series和dataframe
起步 pandas是一种Python数据分析的利器,是一个开源的数据分析包,最初是应用于金融数据分析工具而开发出来的,因此pandas为时间序列分析提供了很好的支持.pandas是PyData项目的一 ...
- python3-pandas 数据结构 Series、DataFrame 基础
Pandas 应用 Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融.统计.社会科学.工程等领域里的大多数典型用例. 数据结构 ...
最新文章
- 编程之美2015资格赛 题目2 : 回文字符序列 [ 区间dp ]
- Django开发社交类网站必备的10个第三方应用
- Cloud for Customer work center的数据是如何从ABAP Netweaver返回给前端的
- 将Chrome调试器里的JavaScript变量保存成本地JSON文件
- 物理搬砖问题_全职业通用,搬砖市场装备
- 钥匙计数之一(HDU-1483)
- 用四张图说清楚Go程序调度的本质
- 支持色温调节 新款Kindle Oasia上市 国行版售价2399元起
- MySQL 函数积累
- 基于FPGA----VGA显示跳动的小白框设计
- clickhouse 物化视图_再谈clickHouse:微博基于 ClickHouse 监控百亿流量下的指标
- SQL*Plus生成html文件
- 百亿级全网舆情分析系统存储设计
- HTML制作用户登录界面
- python内置库和标准库的区别_python标准库和第三方库的区别
- Hibernate 学习的书-夏昕(1)
- React实战之React+Redux实现一个天气预报小项目
- fortran - 用函数进行kind定义
- VUE之多元素组件过渡+动画封装
- 金蝶登录服务器不显示名称,金蝶云服务器如何登陆不了
热门文章
- 页面导出excel的三种方式
- ubuntu上编译fortran_Ubuntu下安装Intel Fortran编译器(ifort)
- Moodle安装指导手册
- shell脚本学习指南——好书推荐
- python爬虫毕业论文大纲参考模板_毕业论文提纲参考模板
- windows内核开发笔记九:内核开发分页内存与非分页内存
- 计算机5800计算道路标高程序,CASIOfx-5800p计算器土木工程测量计算程序开发与应用...
- Android gallery 3D效果(扩展Gallery)
- html页面数学公式添加(附图)
- php pager,fleaphp常用方法分页之Pager使用方法