往期数据分析笔记
【笔记】python数据分析——numpy初识1
【笔记】python数据分析——numpy初识2
【笔记】python数据分析——变换与编程中的轴
【笔记】python数据分析——numpy随机数函数
【笔记】python数据分析——numpy数组索引及切片
【笔记】python数据分析——元素级运算及通用函数
【笔记】python数据分析——条件逻辑运算
【笔记】python数据分析——统计学运算
【笔记】python数据分析——矩阵相乘
【笔记】python数据分析——应用案例之图像负片
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([1,2,3,4])
print(obj)
运行结果:
0 1
1 2
2 3
3 4
dtype: int64
后面一列才是我们生成的数据,前面一列是索引
-
索引可以自己定义,定义方法:
obj = Series([1,2,3,4],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')
[1 2 3 4]
注意:使用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))
运行结果:
[1 2 3 4]
DataFrame数据结构
DataFrame表示的是矩阵的数据表,DataFrame既有行索引也有列索引,DataFrame是以后我们做数据分析经常要用到的,我们以后拿到数据的时候,第一个要想到的就是把它转成DataFrame数据结构
注意:
DataFrame数据结构一定是字典嵌套列表
键值对,键就是列名,后面的列表就是每一列的元素
from pandas import DataFrame
data={
'name':['张三','李四','王五'],
'age':[30,40,10]
}
df = DataFrame(data)
print(df)
运行结果:
name age
0 张三 30
1 李四 40
2 王五 10
列名就是键值对的键名,行索引是0,1,2
-
修改行索引
df = DataFrame(data,index = ['a','b','c'])
print(df)
运行结果:
name age
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)
运行结果:
Name age name
Id
a 30 张三
b 40 李四
c 10 王五
-
将DataFrame数据转为numpy数组
print(df.values)
运行结果:
[[30 '张三']
[40 '李四']
[10 '王五']]
今日鸡汤
生活很不简单,有很多的奥秘没人教你怎样去做,需要自己领悟。当你始终无法领悟,老老实实的做一个平凡的人吧。有天赋的人不是很多,就做一棵小草吧,随风摇摆,不怕踩踏,不怕野火,不怕被啃食,顽强的生命力就是存在的道理。还有什么比活着,还更有意义!
|