pandas中的数据结构-DataFrame
pandas中的数据结构-DataFrame
DataFrame是什么?
表格型的数据结构

- DataFrame 是一个表格型的数据类型,每列值类型可以不同
- DataFrame 既有行索引、也有列索引
- DataFrame 常用于表达二维数据,但可以表达多维数据
DataFrame创建
从字典创建
>>> import pandas as pd
>>> frame=pd.DataFrame(data)
>>> data={'name':['a','b','c'],'pay':[4000,5000,7000]}
>>> frame=pd.DataFrame(data)
>>> frame
name pay
0 a 4000
1 b 5000
2 c 7000
>>>
从二维ndarray创建
>>> import pandas as pd
>>> import numpy as np
>>> data=np.array([('a',4000),('b',6000),('c',9000)])
>>> frame=pd.DataFrame(data,index=range(1,4),columns=['name','pay'])
>>> frame
name pay
1 a 4000
2 b 6000
3 c 9000
DataFrame操作方法
查看数据集的头和尾
- head( 1 ) # 查看第一行
- tail(3) #
>>> frame
name pay
1 a 4000
2 b 6000
3 c 9000
>>> frame.head(1)
name pay
1 a 4000
>>> frame.tail(3)
name pay
1 a 4000
2 b 6000
3 c 9000
查看索引、列和y numpy 数组
- .index
- columns
- values
- describe()
>>> frame.index
RangeIndex(start=1, stop=4, step=1)
>>> frame.columns
Index(['name', 'pay'], dtype='object')
>>> frames.values
>>> frame.values
array([['a', '4000'],
['b', '6000'],
['c', '9000']], dtype=object)
>>> frame.describe()
name pay
count 3 3
unique 3 3
top b 9000
freq 1 1
修改索引index
>>> frame.index=['x','y','z']
>>> frame
name pay
x a 4000
y b 6000
z c 9000
修改列的标题
>>> frame.columns=['name1','pay2']
>>> frame
name1 pay2
x a 4000
y b 6000
z c 9000
修改特定位置元素
修改某一行
>>> frame.values[0]=['d',2]
>>> frame
name1 pay2
x d 2
y b 6000
z c 9000
修改某一行的值
>>> frame.values[1][1]=9000
>>> frame
name1 pay2
x d 2
y b 9000
z c 9000
选择数据
获取某行数据
>>> frame
name1 pay2
x d 2
y b 9000
z c 9000
>>> frame.loc['x']
name1 d
pay2 2
Name: x, dtype: object
按照列获取数据
>>> frame
name1 pay2
x d 2
y b 9000
z c 9000
>>> frame['name1']
x d
y b
z c
Name: name1, dtype: object
>>> frame.pay
1 4000
2 6000
3 9000
Name: pay, dtype: object
>>>
切片
>>> frame.iloc[:2,1]
1 4000
2 6000
Name: pay, dtype: object
修改
>>> frame['name']='admin'
>>> frame
name pay
1 admin 4000
2 admin 6000
3 admin 9000
删除
>>> frame
name pay
1 admin 4000
2 admin 6000
3 admin 9000
>>> del frame['name']
>>> frame
pay
1 4000
2 6000
3 9000
排序
对下标排序
sort_index () 在 指定轴上根据 索引 进行排序,默认升序
>>> b=pd.DataFrame(np.arange(12).reshape(3,4),index=['a','b','c'])
>>> b
0 1 2 3
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
>>> b.sort_index(ascending=False)#行坐标降序
0 1 2 3
c 8 9 10 11
b 4 5 6 7
a 0 1 2 3
>>> b
0 1 2 3
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
>>> b.sort_index(axis=1,ascending=False)#列坐标降序
3 2 1 0
a 3 2 1 0
b 7 6 5 4
c 11 10 9 8
对于值排序
>>> c=b.sort_values(2,ascending=False)
>>> c
0 1 2 3
c 8 9 10 11
b 4 5 6 7
a 0 1 2 3
>>> c=b.sort_values('a',axis=1,ascending=False)#按照axis=1
>>> c
3 2 1 0
a 3 2 1 0
b 7 6 5 4
c 11 10 9 8
表格运算
>>> a=pd.DataFrame(np.arange(12).reshape(3,4))
>>> b=pd.DataFrame(np.arange(12).reshape(3,4))
>>> a
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
>>> b
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
>>> a.add(b)
0 1 2 3
0 0 2 4 6
1 8 10 12 14
2 16 18 20 22
>>> a.sub(b)
0 1 2 3
0 0 0 0 0
1 0 0 0 0
2 0 0 0 0
>>> a.mul(b)
0 1 2 3
0 0 1 4 9
1 16 25 36 49
2 64 81 100 121
>>> a.div(b)
0 1 2 3
0 NaN 1.0 1.0 1.0
1 1.0 1.0 1.0 1.0
2 1.0 1.0 1.0 1.0
比较运算
- 比较运算只能比较相同索引的元素,不进行 补齐
- 采用 > < >= <= == != 等符号进行的二元运算产生
布尔对象
pandas中的数据结构-DataFrame的更多相关文章
- Python之Pandas中Series、DataFrame
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
- Python之Pandas中Series、DataFrame实践
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
- Pandas中Series和DataFrame的索引
在对Series对象和DataFrame对象进行索引的时候要明确这么一个概念:是使用下标进行索引,还是使用关键字进行索引.比如list进行索引的时候使用的是下标,而dict索引的时候使用的是关键字. ...
- [Python] Pandas 中 Series 和 DataFrame 的用法笔记
目录 1. Series对象 自定义元素的行标签 使用Series对象定义基于字典创建数据结构 2. DataFrame对象 自定义行标签和列标签 使用DataFrame对象可以基于字典创建数据结构 ...
- Pandas中Series与Dataframe的区别
1. Series Series通俗来讲就是一维数组,索引(index)为每个元素的下标,值(value)为下标对应的值 例如: arr = ['Tom', 'Nancy', 'Jack', 'Ton ...
- pandas中series和dataframe之间的区别
series结构有索引,和列名组成,如果没有,那么程序会自动赋名为None series的索引名具有唯一性,索引可以数字和字符,系统会自动将他们转化为一个类型object. dataframe由索引和 ...
- pandas中数据框DataFrame获取每一列最大值或最小值
1.python中数据框求每列的最大值和最小值 df.min() df.max()
- Pandas中Series与Dataframe的初始化
(一)Series初始化 1.通过列表,index自动生成 se = pd.Series(['Tom', 'Nancy', 'Jack', 'Tony']) print(se) 2.通过列表,指定in ...
- Pandas 数据结构Dataframe:基本概念及创建
"二维数组"Dataframe:是一个表格型的数据结构,包含一组有序的列,其列的值类型可以是数值.字符串.布尔值等. Dataframe中的数据以一个或多个二维块存放,不是列表.字 ...
随机推荐
- Windows环境下MySQL面试技巧
对话一: 面试官:重新安装mysql卡在最后一步,怎么解决? 应聘者:第一次安装完mysql,由于各种原因需要重新安装是经常遇到的问题,解决方案如下. 1)在注册表里搜索my ...
- DOM导航与DOM事件
HTML DOM 导航 通过 HTML DOM,能够使用节点关系在节点树中导航. ㈠HTML DOM 节点列表 getElementsByTagName() 方法返回节点列表.节点列表是一个节点数组. ...
- TTTTTTTTTTTT POJ 2112 奶牛与机器 多重二分匹配 跑最大流 建图很经典!!
Optimal Milking Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 15682 Accepted: 5597 ...
- 在Windows QT下使用ZeroMQ
zeroMQ作为一个嵌入式消息队列系统,以其轻便灵活的使用方式,极为适合应用程序分布式通讯处理, 或者是一种有效的代替常规saocket通讯的方法. 1)下载地址:http://zeromq.org/ ...
- mysql 链接数满了的错误 ERROR 1040 (HY000): Too many connections
mysql 链接数满了的错误 ERROR 1040 (HY000): Too many connections 第一种处理方式: ./mysql -u root -p 登录成功后执行以下语句查询当前的 ...
- JS框架_(JQuery.js)图片相册掀开切换效果
百度云盘 传送门 密码:y0dk 图片掀开切换效果: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...
- JIRA7.13版本创建项目:工作流(二)
工作流 在上一篇文章中,我们新建了一个问题类型,并且增加到问题类型方案里了,同时又关联到我们的这个项目中.那么这些问题我们需要如何设置流程走向来表示问题的处理过程呢?这就需要设定一个流程,并将这个流程 ...
- SQL中模糊查询的模式匹配
SQL模糊查询的语法为: “Select column FROM table Where column LIKE 'pattern'”. SQL提供了四种匹配模式: 1. % 表示任意0个或多个字符. ...
- MongoDB4和MysSQL5.7的读/写和事务处理速度简单对比
系统环境: Ubuntu 18.04 数据库 MysSQL5.7/MongoDB4.0 插入的数据为随机生产,不重复. MySQL使用的连接库是 sqlalchemyMongoDB使用的连接库是pym ...
- IDEA配置常见配置
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...