【笔记】python数据分析——pandas初识
## 往期数据分析笔记[【笔记】python数据分析——numpy初识1](https://www.52pojie.cn/thread-1381772-1-1.html)
[【笔记】python数据分析——numpy初识2](https://www.52pojie.cn/thread-1382691-1-1.html)
[【笔记】python数据分析——变换与编程中的轴](https://www.52pojie.cn/thread-1383508-1-1.html)
[【笔记】python数据分析——numpy随机数函数](https://www.52pojie.cn/thread-1386199-1-1.html)
[【笔记】python数据分析——numpy数组索引及切片](https://www.52pojie.cn/thread-1386446-1-1.html)
[【笔记】python数据分析——元素级运算及通用函数](https://www.52pojie.cn/thread-1387623-1-1.html)
[【笔记】python数据分析——条件逻辑运算](https://www.52pojie.cn/thread-1387803-1-1.html)
[【笔记】python数据分析——统计学运算](https://www.52pojie.cn/thread-1387994-1-1.html)
[【笔记】python数据分析——矩阵相乘](https://www.52pojie.cn/thread-1388004-1-1.html)
[【笔记】python数据分析——应用案例之图像负片](https://www.52pojie.cn/thread-1389426-1-1.html)
## pandas介绍
pandas所包含的数据结构和数据处理工具的设计使得在python中进行数据清洗和分析非常快捷。pandas支持大部分Numpy语言风格的数组计算,尤其是数组函数以及没有for循环的各种数据处理
### 安装pandas包
Pandas可以通过PyPI的pip安装(其他安装方式请大家自行百度)。
```
pip install pandas
```
### pandas导包
我之前说过numpy包导包的时候要给一个别名,在这里pandas的标准导包也是需要的
```
import pandas as pd
```
除了上面这种导入方式,我们还可以方便的从本地命名空间导入Series和DataFrame,它们是常用的类
```
from pandas import Series
from pandas import DataFrame
```
## Series数据结构
Series是一种一维的数组型对象,它包含了一个值序列(与Numpy中的类型相似),并且包含了索引,最简单的序列可以仅仅由一个数组形成
- 创建普通Series数据
```
from pandas import Series
obj = Series()
print(obj)
```
运行结果:
0 1
1 2
2 3
3 4
dtype: int64
后面一列才是我们生成的数据,前面一列是索引
- 索引可以自己定义,定义方法:
```
obj = Series(,index = ['a','b','c','d'])
print(obj)
```
运行结果:
a 1
b 2
c 3
d 4
dtype: int64
- 给index起名字
```
obj.index.name = 'test'
```
运行结果:
test
a -1
b 2
c 3
d 4
dtype: int64
- 查看索引及数值
```
print(obj.index)
print(obj.value)
```
运行结果:
Index(['a', 'b', 'c', 'd'], dtype='object', name='test')
**注意:使用values取到的值数据类型是numpy数组,也就是说可以直接对取到的值进行numpy操作**
- 通过索引值查找数据
```
print(obj['c'])
```
运行结果:
3
**注意:如果要同时通过索引查找两个及以上的数据的话,需要使用列表的方式**
```
print(obj[['a','c','d']])
```
运行结果:
test
a -1
c 3
d 4
dtype: int64
- Series向量化运算,和numpy结合使用
```
print(obj*10)
```
运行结果:
test
a -10
b 20
c 30
d 40
dtype: int64
```
import numpy as np
print(np.abs(obj.values))
```
运行结果:
## DataFrame数据结构
DataFrame表示的是矩阵的数据表,DataFrame既有行索引也有列索引,DataFrame是以后我们做数据分析经常要用到的,我们以后拿到数据的时候,第一个要想到的就是把它转成DataFrame数据结构
**注意:
DataFrame数据结构一定是字典嵌套列表
键值对,键就是列名,后面的列表就是每一列的元素**
```
from pandas import DataFrame
data={
'name':['张三','李四','王五'],
'age':
}
df = DataFrame(data)
print(df)
```
运行结果:
nameage
0 张三 30
1 李四 40
2 王五 10
列名就是键值对的键名,行索引是0,1,2
- 修改行索引
```
df = DataFrame(data,index = ['a','b','c'])
print(df)
```
运行结果:
nameage
a 张三 30
b 李四 40
c 王五 10
- 修改列索引
```
df = DataFrame(data,index = ['a','b','c'],columns = ['age','name'])
print(df)
```
运行结果:
age name
a 30 张三
b 40 李四
c 10 王五
**注意:列名也可以变,但不是真的改变,只能调换顺序(不能真的改变)**
- 给行列索引增加名字
```
df.index.name = 'Id'
df.columns.name = 'Name'
print(df)
```
运行结果:
Nameage name
Id
a 30 张三
b 40 李四
c 10 王五
- 将DataFrame数据转为numpy数组
```
print(df.values)
```
运行结果:
[
]
## 今日鸡汤
生活很不简单,有很多的奥秘没人教你怎样去做,需要自己领悟。当你始终无法领悟,老老实实的做一个平凡的人吧。有天赋的人不是很多,就做一棵小草吧,随风摇摆,不怕踩踏,不怕野火,不怕被啃食,顽强的生命力就是存在的道理。还有什么比活着,还更有意义! 感谢分享 感谢分享 厉害厉害,真的厉害 pandas还是要好好学习一下 内容真不错 写的很好,赞一个
页:
[1]