一、初识Pandas
pandas能简单、快速地处理各种类型的数据。
- 与SQL或excel类似的数据
- 有序或无序的时间序列数据
- 带行、列标签的矩阵数据
- 其他形式的观测、统计数据集
两个主要数据结构:一维数组Series,二维数组DataFrame。
二、小试牛刀
创建一个Series对象:
import pandas as pd
s=pd.Series(data,index=index)
#data 表示数据,支持字典、多维数组等
#index 表示索引
另一种创建方式,通过Pandas引入Series模块
# 另一种创建方式
from pandas import Series
s1=Series([1,5,8])
print(s1)
标签索引:如果需要获取多个标签索引值,用[[]]。
切片索引:包头不包尾,即获取不到最后一个元素
from pandas import Series
s1=Series([1,5,8],index = ['first','second','third'])
print(s1)
print(s1['first'])
print(s1['first'],s1['second'])
#如果需要获取多个标签索引值,用[[]]
print(s1[['first','second']])
#切片索引:包头不包尾,即获取不到最后一个元素
print(s1[:2])
获取索引、值
#获取索引、值
print(s1.values)
print(s1.index)
DataFrame对象
#DataFrame 对象
#创建
#pandas.DataFrame(data,index,columns,dtype) (数据,行标签,列标签,数据类型)
'''
#利用二维数组创建
pd.set_option('display.unicode.east_asian_width',True)
data = [[110,120,100],[114,96,120],[99,106,105]]
columns= ['语文','数学','英语']
df = pd.DataFrame(data =data,columns=columns)
print(df)
'''
#通过字典创建
pd.set_option('display.unicode.east_asian_width',True)
df=pd.DataFrame({'语文':[110,114,99],'数学':[120,96,106],'英语':[100,120,105]},index=[0,1,2])
print(df)
数据增加
# 抽取数据
#主要使用loc和iloc属性,loc:以列名、行名为参数,若只有一个参数,默认是行名,iloc:以行、列位置索引为参数,只有一个值时默认是行索引
#1.通过col属性
df1=pd.DataFrame({'语文':[110,114,99],'数学':[120,96,106],'英语':[100,120,105]},index=['张三','王五','李四'])
print(df1)
print(df1.loc['张三'])
print(df1.loc['王五','数学'])
'''
# 按制定条件抽取
df2=df.loc[(df['语文']>100)&(df['数学']>110)]
print(df2)
# 按列增加数据
df1['物理']=[111,100,85]
print(df1)
df1.loc[:,'化学']=[99,85,96] #在最后一列增加数据
wl=[95,110,102]
df1.insert(1, '历史', wl)
print(df1)
'''
# 按行增加数据
print(df1)
#df1.loc['李华']=[110,102,99]
df1_insert=pd.DataFrame({'语文':[105,99,102],'历史':[99,88,85],'数学':[55,102,95],'英语':[120,102,111],'物理':[110,102,99],'化学':[99,105,120]},index=['多多','朵朵','阿花'])
df1=df1.append(df1_insert)
print(df1)