#通过索引是视图 不是副本
1.导包
import pandas as pd
from pandas import Series,DataFrame
import numpy as np
2.Series(数据类型)
2.1 创建Series
#Series 由索引和一维数组组成
obj = Series([4,7,-5,3]) # 默认索引
obj.values # 获得值
array([ 4, 7, -5, 3], dtype=int64)
obj.index # 索引值
RangeIndex(start=0, stop=4, step=1)
#带索引值
obj2 = Series([4,7,-5,3],index=['d','b','a','c'])
#字典
sdata ={
'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}
obj3 = Series(sdata)
2.2 取值
#取值
obj2['a']
obj2['a','b']
#类似字典,索引和值一一对应,无论做什么操作(根据布尔值进行过滤.标量乘法,数学函数等)
#索引和值的对应关系不变,但是索引值可能会重复
#类似字典,判断键是否存在(索引是否存在)
'b' in obj2
#判断是否有NA
pd.isnull(obj4) #是否有Na值
pd.notnull(obj4) #是否有非NA值
3.DataFrame(数据类型)
3.1 定义
DataFrame 是一个表格型的数据结构,具有行索引和列索引.每列的数据可以不相同,但是公用一个索引(行,列)
3.2 创建
data = {
'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
'year':[2000,2001,2002,2001,2002],
'pop':[1.5,1.7,3.6,2.4,2.9]}
frame = DataFrame(data)
frame_test = DataFrame(data,index=['a','b','c','d','e'])#添加索引
3.3 简单的增删改查
#取列 返回的Series和原DataFrame相同的索引
frame['state']
frame.state
#增加一列
frame['debt'] = np.arange(5)
frame['debt'] = 16.5
#改
val = Series([2,3],index=[1,2])
#frame.loc[1:2,'year'] 选取要修改的数据,下面会讲到
frame.loc[1:2,'year'] = val
#删
del frame['year']
3.4 索引对象(暂时不讲)
4.基本功能
4.1 重新索引
功能:pandas中的reindex方法可以为series和dataframe添加或者删除索引。
方法:serise.reindex()、dataframe.reindex()
如果新添加的索引在原数组的索引中不存在,则默认为nan。如果减少索引,就相当于一个切片操作。
obj = Series([4.5,7.2,-5.3,3.6],index=['d','b','a','c'])
d 4.5
b 7.2
a -5.3
c 3.6
obj2 = obj.reindex(['a','b','c','d','e'],fill_value=0)#重新索引比原来的数组多,用0补充
#行索引
obj3 = Series(['blue','purple','yellow'],index=[0,2,4