Python数据处理库pandas中的DataFrame数据结构简介
pandas 中有两大 数据结构 Series和 DataFrame。 本文主要介绍DataFrame的用法。DataFrame可以处理 表格数据。
Series介绍在 Python数据处理库pandas中的Series数据结构简介
有很多方法可以创建DataFrame 数据, 比如通过字典:
In [1]: import pandas as pdIn [8]: data = {'name': ['张三', '张三', '张三', '李四', '李四', '李四'],...: 'year': [2016, 2017, 2018, 2016, 2017, 2018],...: 'income': [6000, 6500, 7000, 25000, 26000, 29000]}In [9]: frame = pd.DataFrame(data)In [10]: frame
Out[10]: name year income
0 张三 2016 6000
1 张三 2017 6500
2 张三 2018 7000
3 李四 2016 25000
4 李四 2017 26000
5 李四 2018 29000
可以通过head方法来选取前5排:
In [11]: frame.head()
Out[11]: name year income
0 张三 2016 6000
1 张三 2017 6500
2 张三 2018 7000
3 李四 2016 25000
4 李四 2017 26000
通过指定columns 来对列排序:
In [13]: pd.DataFrame(data, columns=['year', 'income', 'name'])
Out[13]: year income name
0 2016 6000 张三
1 2017 6500 张三
2 2018 7000 张三
3 2016 25000 李四
4 2017 26000 李四
5 2018 29000 李四
如果在columns中 指定了一个不存在的列, 这不存在的列会用NAN补足:
In [14]: frame2 = pd.DataFrame(data, columns=['income', 'year', 'name', 'gender'],...: index=['one', 'two', 'three', 'four', 'five', 'six'])...: In [15]: frame2
Out[15]: income year name gender
one 6000 2016 张三 NaN
two 6500 2017 张三 NaN
three 7000 2018 张三 NaN
four 25000 2016 李四 NaN
five 26000 2017 李四 NaN
six 29000 2018 李四 NaNIn [17]: frame2.columns
Out[17]: Index(['income', 'year', 'name', 'gender'], dtype='object')
通过列的名称来选取这一列的数据
In [18]: frame2['name']
Out[18]:
one 张三
two 张三
three 张三
four 李四
five 李四
six 李四
Name: name, dtype: objectIn [20]: frame2.income
Out[20]:
one 6000
two 6500
three 7000
four 25000
five 26000
six 29000
Name: income, dtype: int64
通过loc 来选取某一行的数据
In [21]: frame2.loc['six']
Out[21]:
income 29000
year 2018
name 李四
gender NaN
Name: six, dtype: object
可以对某列数字进行赋值
In [22]: frame2['gender'] = 'male'In [23]: frame2
Out[23]: income year name gender
one 6000 2016 张三 male
two 6500 2017 张三 male
three 7000 2018 张三 male
four 25000 2016 李四 male
five 26000 2017 李四 male
six 29000 2018 李四 maleIn [24]: frame2['gender'] = ['male', 'male', 'male', 'female', 'female', 'female']In [25]: frame2
Out[25]: income year name gender
one 6000 2016 张三 male
two 6500 2017 张三 male
three 7000 2018 张三 male
four 25000 2016 李四 female
five 26000 2017 李四 female
six 29000 2018 李四 female
可以应用series对对应index赋值
In [26]: gender = pd.Series(['male', 'female'], index=['one', 'four'])In [27]: frame2['gender'] = genderIn [28]: frame2
Out[28]: income year name gender
one 6000 2016 张三 male
two 6500 2017 张三 NaN
three 7000 2018 张三 NaN
four 25000 2016 李四 female
five 26000 2017 李四 NaN
six 29000 2018 李四 NaN
通过del 删除某列
In [29]: del frame2['gender']In [30]: frame2.columns
Out[30]: Index(['income', 'year', 'name'], dtype='object')
另一种创建dataframe类的方法是通过字典嵌套方法:
In [31]: income = {'张三': {2016: 6000, 2017:6500, 2018:7000},...: '李四': {2016: 25000, 2017:26000}}In [32]: frame3= pd.DataFrame(income)In [33]: frame3
Out[33]: 张三 李四
2016 6000 25000.0
2017 6500 26000.0
2018 7000 NaN
可以对dataframe转置:
In [34]: frame3.T
Out[34]: 2016 2017 2018
张三 6000.0 6500.0 7000.0
李四 25000.0 26000.0 NaN
对行和列加名字:
In [35]: frame3.index.name = 'year'In [36]: frame3.columns.name = 'name'In [37]: frame3
Out[37]:
name 张三 李四
year
2016 6000 25000.0
2017 6500 26000.0
2018 7000 NaN
应用to_numpy方法 将dataframe转换成二维数组
In [38]: frame3.to_numpy()
Out[38]:
array([[ 6000., 25000.],[ 6500., 26000.],[ 7000., nan]])In [39]: frame2.to_numpy()
Out[39]:
array([[6000, 2016, '张三'],[6500, 2017, '张三'],[7000, 2018, '张三'],[25000, 2016, '李四'],[26000, 2017, '李四'],[29000, 2018, '李四']], dtype=object)
参考自: Python for Data Analysis, 2nd Edition by Wes McKinney
Python数据处理库pandas中的DataFrame数据结构简介相关推荐
- pandas中的DataFrame数据结构
pd.DataFrame() DataFrame 是一种二维的数据模型,相当于EXcel表格中的数据,有横竖两种坐标,横轴用columns,竖轴用index 来确定,在建立DataFrame 对象的时 ...
- python做数据处理软件_程序员用于机器学习编程的Python 数据处理库 pandas 入门教程...
入门介绍 pandas适合于许多不同类型的数据,包括: · 具有异构类型列的表格数据,例如SQL表格或Excel数据 · 有序和无序(不一定是固定频率)时间序列数据. · 具有行列标签的任意矩阵数据( ...
- python使用教程pandas-Python 数据处理库 pandas 入门教程基本操作
pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库.本文是对它的一个入门教程. pandas提供了快速,灵活和富有表现力的数据结 ...
- Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换
Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片.相互转换 目录 numpy中的array格式数据切片与pandas中的dataframe ...
- python怎么选取不连续的列_用pandas中的DataFrame时选取行或列的方法
如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...
- python中的iloc函数_详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
pandas的DataFrame对象,本质上是二维矩阵,跟常规二维矩阵的差别在于前者额外指定了每一行和每一列的名称.这样内部数据抽取既可以用"行列名称(对应.loc[]方法)",也 ...
- python列表按照指定顺序排序-pandas中的DataFrame按指定顺序输出所有列的方法
问题: 输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致. 例如: import pandas as pd grades = [48,99, ...
- 爱因斯坦求和约定在Python扩展库Numpy中的实现
推荐教材: <Python数据分析.挖掘与可视化>(慕课版)(ISBN:978-7-115-52361-7),董付国,人民邮电出版社,定价49.8元,2020年1月出版,2021年12月第 ...
- Python 数据处理工具 Pandas(上)
序列与数据框的构造 外部数据的读取(文本文件读取.电子表格读取.数据库数据读取) 数据类型转换及描述统计 字符与日期数据的处理 数据清洗方法(重复观测处理.缺失值处理.异常值处理) 数据子集的获取 透 ...
最新文章
- String 中的hashCode方法
- OpenYurt v0.4.0 新特性发布:高效地管理边缘存储资源
- javascript标签在页面中的位置探讨
- 切分也重要:基于多粒度语言单元切分的BERT模型
- 7.1 定义关键指标KPI
- 记tcp网络编程中遇到的readline()方法
- 模拟电子技术基础第4版笔记和课后习题答案 童诗白
- CSS样式div和img居中
- python关键词排名批量查排名_李亚涛:python批量查询关键词百度手机与PC排名
- pacman 查询_pacman
- 深度模型训练之learning rate
- 数据中台、业务中台、数据仓库、现有信息架构
- python取json数组中的值
- 『goodman1999』SD2.0大会:达内创始人韩少云:创业就像买股票
- thinkpadt410接口介绍_转:联想ThinkPad T410笔记本DisplayPort接口详解
- 一个漂亮的证明与作图:高斯的正十七边形
- 美国往事 - 追忆我的房东Dick 最终篇 - 伤感的结局
- Qt渲染视频常见问题(视频渲染窗口上子窗口设置透明出现阴影问题、主窗口缩放导致视频渲染窗口部分出现视频闪烁问题)
- .Net C# 发送带背景图html邮件(解决Outlook不显示背景图问题)
- Vue7 异步加载 懒加载