import numpy as np
import pandas as pd
from pandas import Series,DataFrame

创建一维数据:(Series类型)

s=Series(data=[123,124,145,156],index=['Math','Chinese','En','Python'])
#创建Series类型数据时,还可以增加其他属性 dtype 、name
s=Series(data=np.random.randint(0,50,size=100),index=np.arange(10,110),dtype=np.int16,name='Python')

Series类型的数据相关的属性:

#查看形状
s.shape
#查看数据的值
s.values
#查看数据的类型
type(s)
#求数据的平均值
s.mean()
#求数据的最大值
s.max()
#求数据的平方
s.pow(2)

访问Series类型的数据:

#根据创建数据时的索引访问数据
s[0]#报错,没有该索引,索引是从10到109
s[10]
#根据索引访问多个值
s[[10,20]]#访问索引为10和20的数据
#切片操作
s[10:20]#此时访问的是列表中第10个到第19个元素
s[20:30]#此时访问的是列表中第20个到第29个元素
s[::2]#访问从头到尾,隔一个访问一次,第1个、第3个……
s[::-2]#从尾到头访问,隔一个访问一次
#定位操作
s.loc[10]#访问索引为10的元素
s.loc[[10,20]]#访问索引为10和20的元素
s.loc[10:20]#访问索引10到20的元素
s.loc[::2]
s.loc[::-2]
#显示索引
s.index
##########################################################
s.iloc[[10,20]]#使用iloc实际上索引是从0开始,此时访问的是第10个和第20个元素
s.iloc[10:20]#访问从第10到第19个元素
s.iloc[::2]#用法和s.loc类似,只是索引有区别

DataFrame类型的数据

创建DataFrame类型的数据:

#数据是10*3,index对应的是行标,columns对应的是列标
df=DataFrame(data=np.random.randint(0,50,size=(10,3),index=list('abcdefhijk'),columns=['Python','En','Math'])

DataFrame类型的数据相关的属性:

#查看数据的形状
df.shape
#数据的值
df.values
#求每一列数据的平均值,默认情况下是将每一行的数据相加,axis=0
df.mean()
df.mean(axis=1)#求一行数据的平均值,将每一列的一个数据相加
#求每一列数据的最大值
df.max()

访问DataFrame类型的数据:

#DataFrame结构性的数据,不能通过行属性获取该行的值,可以通过列属性获取该列的值
df['A']#出错
df['Python']#运行结果是Python这一列的值
df[['Python','Math']]#获取Python和Math这两列的值
df['Python':'Math']#无结果,不能通过对列进行切片操作
df['A':'D']#可以通过对行进行切片操作
df.loc['A']#只能检索行,不能检索列
df.loc['Python']#出错
df.loc[['A','B']]#访问这两行的数据
df.loc['A':'D']#访问从A到D的数据
df.loc[::2]#隔一行访问一次,正着访问
#####################################################
df.iloc['A']#df.iloc只能使用整数对数据进行访问
df.iloc[0]#访问第0行数据
df.iloc[::2]#隔一行访问一次
df.iloc[::2,1:]#对行和列分别进行切片操作,隔行访问,从第一列访问到最后一列