Pandas的数据结构
导入pandas:
数据分析三剑客 numpy pandas matplotlib
# 三剑客
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import Series,DataFrame
1、Series
Series是一种类似于一维数组的对象,由下面两个部分组成:
-
index:相关的数据索引标签
-
values:一组数据(ndarray类型)
data数据, index索引
s1 = Series([1,2,3,4])
s1
s1.index # 索引
s1.values
list(‘abcd’)
s2 = Series(data=[1,2,3,4],index=list(‘abcd’))
s2还可以用字典的方式去创建 数列
Series({‘a’:1,‘b’:2,‘c’:3})
#a 1
#b 2
#c 3
#dtype: int64
1)Series的创建
两种创建方式:
(1) 用列表形式创建
(2) 用字典形式创建
2)Series的索引和切片
显式索引:
- 使用index中的元素作为索引值
- 使用.loc[‘索引名’](推荐)
示例:
- 索引
- 切片 注意,字符索引是闭区间 [start:end]
- 取多个值
隐式索引:
- 使用整数作为索引值
- 使用.iloc[ 索引号 ](推荐)
示例:
- 索引
- 切片 注意,编号索引是左闭右开区间 [start,end)
- 取多个值
3)Series的常用属性和方法
可以把Series看成一个定长的有序字典
可以通过shape,size,index,values等得到series的属性
可以通过head(),tail()快速查看Series对象的样式
s.head(2)看头两个 s.tail(1)看后一个
Series中如果值是None,会被转成NaN。并且计算时会被当成0(ndarray不会)
可以使用pd.isnull(),pd.notnull(),或自带isnull(),notnull() 函数检测值为None或NaN的数据
另外 series对象有一个name属性可以用来区分不同的series
4)Series的运算
(1) 适用于numpy的数组运算也适用于Series
(2) Series之间的运算
- 在运算中自动对齐不同索引的数据
- 如果索引不对应,则补NaN(值和NaN相加的结果还是NaN,如果想要让NaN的值当作0处理,可以用s1.add(s2,fill_value=0)来处理)