Pandas基础及series对象
一.pandas概述
- Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据
- Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征
- Pandas 广泛应用在学术、金融、统计学等各个数据分析领域
- Pandas 的出现使得 Python 做数据分析的能力得到了大幅度提升,它主要实现了数据分析的五个重要环节:加载数据、整理数据、操作数据、构建数据模型、分析数据
二.安装
在cmd打开命令终端后,激活conda,进入要下载pandas的环境中输入
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/
三.内置数据结构
Series
是带标签的一维数组,这里的标签可以理解为索引,但这个索引并不局限于整数,它也可以是字符类型,比如 a、b、c 等。
DataFrame
是一种表格型数据结构,它既有行标签,又有列标签,都可以是字符串。默认都是0、1、2、3、4、5 等索引,可自定义。
四.Series
pandas.Series(data,index,dtype) | data:一组数据(可以是ndarray 类型) index:数据索引标签,如果不指定,默认从 0 开始 dtype:数据类型,默认会自己判断 copy:表示对 data 进行拷贝,默认为 False |
4.1 创建对象
# 创建空对象
import pandas as pd
data = pd.Series()
print(data)
print(type(data))
Series([], dtype: object)
<class 'pandas.core.series.Series'>
# 直接赋值创建
import pandas as pd
# 给一个列表或可迭代对象
s = pd.Series([1,2,3,4,5],dtype='float')
print(s)
0 1.0
1 2.0
2 3.0
3 4.0
4 5.0
dtype: float64
# ndarray 创建 Series 对象
import pandas as pd
import numpy as np
# 因为数组也是可迭代对象
s = pd.Series(np.array([1, 2, 3, 4]))
print(s)
0 1
1 2
2 3
3 4
dtype: int32
# 字典创建 Series 对象
import pandas as pd
import numpy as np
# key键传入下标,value值就传入变成元素
dic = {'name':'zhangsan','age':18,'sex':'male'}
s = pd.Series(dic)
print(s)
name zhangsan
age 18
sex male
dtype: object
4.2 访问Series 数据
import pandas as pd
# 创建一个series对象
s = pd.Series([1, 3, 5, 6, 8, 10])
# 根据下标来访问元素,这里的下标还是默认值0,1,2 ~~~
print(s[0])
# 换个行
print()
# 使用默认下标来切片,终止值不被包含
# (标签默认为0,1 ~,系统无法分清是元素还是标签,所以采用下标来访问)
print(s[:2])
1
0 1
1 3
dtype: int64
# 自定义标签(下标)
s1 = pd.Series([1,2,3,4,5], index=['a','b','c','d','e'])
print(s1['d'])
# 使用自定义标签切片访问,使用的是标签访问,会包含终止值
print(s1['a':'c'])
4
a 1
b 2
c 3
dtype: int64
这里还要注意一个之前讲列表时的细节,那就是切片访问元素时,会返回原数据类型的相同的数据类型,其中包含切片的值,也就是Seres切片之后还是返回一个Series对象,不单返回值。
4.3 遍历series元素
4.3.1 遍历index
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
# 获取index属性(标签)
for i in s.index:
# 同时打印标签与值
print(i,s[i])
a 1
b 2
c 3
d 4
e 5
4.3.2 遍历values
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
# 获取values属性(值)
for i in s.values:
print(i)
1
2
3
4
5
4.3.3 items()
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
# 输出迭代器
for i in s.items():
print(i)
# 换个行
print()
for key,value in s.items():
print(key,value)
('a', 1)
('b', 2)
('c', 3)
('d', 4)
('e', 5)a 1
b 2
c 3
d 4
e 5