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中的数据以一个或多个二维块存放,不是列表.字 ...
随机推荐
- tp5商城
记录几个要点: 用户使用firbug伪造表单字段,比如伪造表单id字段,如何防止,tp5中好像没有. xss攻击:使用htmlspecialchars() 会把img.p.等等合法标签过滤掉,想要有选 ...
- TTTTTTTTTTT POJ 2749 修牛棚 2-Sat + 路径限制 变形
Building roads Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7019 Accepted: 2387 De ...
- RESTful规范与django编写restful接口
一.什么是RESTful规范 ①REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” ②REST从资 ...
- Python中的不可变对象类型与可变对象类型
https://blog.csdn.net/answer3lin/article/details/86430074 其实各个标准资料中没有说明Python有值类型和引用类型的分类,这个分类一般是C++ ...
- selenium java 自动化测试 基于火狐浏览器/谷歌浏览器
:环境 java1.8+ieda 直接上代码 pom.xml <?xml version="1.0" encoding="UTF-8"?> < ...
- JavaWeb_Get和Post方法传输数据区别
Get方法和Post方法传输数据区别: 传送门 GET在浏览器回退时是无害的,而POST会再次提交请求 GET产生的URL地址可以被Bookmark,而POST不可以 GET请求会被浏览器主动cach ...
- 原生Js_实现简单选项卡功能
javascript实现选项卡功能,在<script>...</script>中编写代码 实现步骤 a)获得各操作的dom对象: b)在所有按钮对象上添加单击事件: c)设置所 ...
- [CSP-S模拟测试]:点亮(状压DP+树上背包DP)
题目传送门(内部题121) 输入格式 第一行,一个正整数$n$. 第二行,$n-1$个正整数$p_2,p_3,...,p_n$.保证$p_u$是在$1$到$u-1$中等概率随机选取的. 接下来$n$行 ...
- nginx负载均衡 理解与测试
Nginx负载均衡概述 Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中,实现 ...
- 20175212童皓桢 《Java程序设计》第十周学习总结
学号 2016-2017-2 <Java程序设计>第X周学习总结 教材学习内容总结 一.Java中的线程的状态 建的线程在它的一个完整的生命周期中通常要经历如下的四种状态: 1.新建: 当 ...