目录
1.Pandas简介
2.Series的创建
1.通过数组列表来创建
2.通过传入标量创建
3.通过字典类型来创建
4.通过numpy来创建
3.Series的索引和应用
1. 通过index和values信息
2. 通过切片方法获取信息
4.DataFrame的创建
1.直接创建
2.矩阵方式创建
3.字典类型创建
5.DataFrame的索引和应用
1.DataFrame的索引信息提取
2.DataFrame的数据选择
3.索引器操作实例
#Pandas简介
"""
Pandas(Panel data analysis)是一个强大的分析结构化数据的工具集,
使Python成为高效的数据分析环境。
1.Pandas的基础是NumPy(提供高性能的矩阵运算)
2.Pandas可用于数据挖掘和数据分析,同时也提供数据清洗功能
3.Pandas提供Series、DataFrame等数据结构
DataFrames:二维数据,整个表格,多行多列
Series:一维数据,一行或者一列
"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
list1=[4,3,-3,10]
#Series的创建
a_ser=pd.Series(list1)
a_ser#一列是索引,一列是数值
#传入标量
s=pd.Series(22)
s=pd.Series(22,['a','b','c'])
s
#通过字典来创建Series
a_dic={'a':92,'b':45,'c':33}
a=pd.Series(a_dic)
a
%%
#传入字典并且自定义索引
a=pd.Series({'A':90,'B':90,'C':90},index=['B','C','D'])
a
#通过ndarray
b=pd.Series(np.arange(10,15),index=np.arange(20,25))
b
%%
#通过index和values获取所引和
print(b.index)
print(b.values)
%%
#index对象
b=pd.Series(['A','B','C'])
b
%%
b.index
%%
b.values
%%
a[1:3]
%%
#统计方面的用法
a.mean()
%%
#in函数的用法
#表示如果在Series中返回True,否则返回False
b=dict(a)
b
%%
'a' in a
'v' in a
'b' in a
# Dataframe building
# axis=0 axis=1
g=np.random.randint(60,100,(4,2))
g_df=pd.DataFrame(g,index=['Mary','Bob','Lee','Rose'],
columns=['math','chinese'])
g_df
# dataframe -- ndarray()
a_df=pd.DataFrame(np.random.rand(3,4),index=['A','B','C'])
a_df
g_dic={'math':[96,92,89,90],'chinese':[90,21,89,79]}
b=pd.DataFrame(g_dic,index=['Mary','Bob','Lee','Rose'])
b
# dataframe -- ndarray()
a_df=pd.DataFrame(np.random.rand(3,4),columns=['x','y','z','v'],index=['one','two','three'])
a_df
%%
# basical actions for DataFrame functions
a_df.index
%%
a_df.columns#列
%%
a_df.values#值
%%
a_df['x']#x列的信息
%%
a_df.T#dateframe转置
%%
a_df[:2]#切片
%%
a_df[['x','v']]#多个切片
# DataFrame的数据选择
"""
对DataFrame的数据进行更灵活的选择,Pandas提供索引器(indexer)属性作为取值方法.
1.使用索引器iloc、loc,提供灵活的索引形式.
2.可使用loc(自定义索引)或iloc(自动索引)以NumPy风格的语法从DataFrame中选取行和列数据
3.通过loc和iloc,行、列数据都可以做切片和花式索引.
"""
%%
a_df
%%
a_df.loc[['one','two']]#提取前两行
%%
#同时也可以用切片索引
a_df.loc[:,['x','y','z']]
#当然也能够提取一部分
#索引器操作实例
s_dic={'Python':[60,99,81,66],'C':[63,69,96,84],'Java':[63,79,83,84]}
score=pd.DataFrame(s_dic,index=['Ann','Bob','Cindy','Lee'])
score
%%
#选择单行或者指定行
score.iloc[[0,2],[0,1]]#numpy的匹配对象(0,0)(2,1)
%%
#.loc
score.loc['Ann':'Cindy']
%%
#.iloc
score.iloc[0:2]
%%
#loc和iloc都可以修改数据
score.loc['Ann','C']=100
score.iloc[2,2]=99
score