文章目录
pandas的核心类
Series(一位数组)、DataFrame(二维数组)、Index(索引)
导入pandas:import pandas as pd
Series(数据系列)带标签的数组
一、创建Series对象
1 . ser=pd.Series( 列表/数组/字典 )
ser1=pd.Series([1,2,3])
ser2=pd.Series(np.arange(1,6))
ser3=pd.Series('name':'John','age':18,'score':'95')
通过字典创建时索引可以比值多,其他方法索引和值的个数必须相同
ser1=pd.Series(np.random.randint(10,100,5))
ser1
#索引 数据
#0 56
#1 78
#2 22
#3 42
#4 14
#dtype: int32 (元素类型)
2.可以直接在创建Series数组时创建索引
①:
ser = pd.Series(
data=[value1,value2,value3,...],
index=[index1,index2,index3,...]
ser
②:
ser=pd.Series(
data={
index1:value1,
index2:value2,
....
}
)
二、Series索引和切片
ser [ 元素下标 ]
:直接返回该下标对应的值,一次只能取单个元素
ser [ 索引]
:选取单个索引
ser [ [ 元素下标1,元素下标2,... ] ]
:返回对应的索引和值
ser [ [ 索引1,索引2,...] ]
:返回对应的索引和值,当数组中有重复索引时会返回该索引对应的全部值
ser[开始下标:结束下标]
:切片
ser[开始索引:结束索引]
:切片,包含末端数据
ser[ser>n]
:布尔索引取值,返回索引和值,默认找到为True的值
三、Series的基本用法
1.处理空值(缺失值)
判断是否为空:ser.isnull()
不是空值的:ser.notnull
None:Python的空值
np.nan:numpy的空值
删除空值
①ser.dropna( )
:返回删除了空值的新的Series对象
②ser.dropna(inplace=True)
:直接删除原来的Series对象
填充空值
①用指定值 x 填充空值:ser.fillna ( x )
,有inplace时改变原来的Series对象
②用空值前面或后面的值填充空值
用前面的值填:ser.ffill( )
用后面的值填:ser.bfill( )
2.去重
获取不重复元素构成的数组 :ser.unique( )
去重:ser.drop_duplicates( )
统计重复次数:
①非重复元素的个数:ser.nunique( )
②统计重复次数:ser.value_counts( )
3.替换
①替换不满足条件的值:ser.where( 判断条件,替换值)
②替换满足条件的值:ser.mask(判断条件,替换值)
DataFrame二维数组
表格型的数据结构,Series容器
一、创建DataFrame
DataFrame对象既有行索引,又有列索引
行索引,表明不同行,横向索引,叫index,0轴,axis=0
列索引,表明不同列,纵向索引,叫columns,1轴,axis=1
1.通过数组创建
df = pd.DataFrame(
data=[[],[],[],...],
【
index=['a','b','c',...]
columns=['A','B','C',...]
】
)
没给索引命名时默认为0,1,2…
①通过二维数组构造创建:df=pd.DataFrame(np.arange(12),reshape(3,4))
②通过字典构造成的列表创建
#例子
list1=[{
'apple':3.6,'banana':3.6}