目录
- #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