0、常用
1)读写
①从不同文本文件中读取数据的函数,都是read_xxx的形式;写函数则是to_xxx
②对前n行感兴趣,或者用于检查读进来的数据的正确性,用head(n)方法;类似的,后n行,用tail(n)——如果不写参数n,将会是n行;信息浏览可以用info()方法
③检查各列的类型,用dtypes属性
2)取子集
①这一部分的内容与numpy的切片、索引部分很类似
②可以通过shape属性查看DataFrame与Series的尺寸
③如果要查看其中的若干列,索引为这些列名的list,不能单独直接写列名
person_df[['Name','Age']]#列名的list,√
person_df['Name','Age']#直接写列名,×
④筛选特定行,类似numpy中的布尔索引
df[df['Age']>35]
df中Age大于35的行
df[func(df['Age'])]
df中对Age进行函数func后返回True的行
如果,直接用索引值df['Age']>35,则返回一个与df['Age']相同大小的Series,只是相关的值代之以True或False
3)DataFrame
DataFrame是一个2维的数据结构,每行可以存储不同的数据结构。实际上,用Excel表可以更容易理解,每列则表示一个Series(Series是另一种pandas数据结构,一个Series中的数据为同一种类型;此外,Series还有个Name属性),同时有一个列标签;每行也有一个行标签,行标签总是数字0、1、2...。
下面我们显式的构造一个DataFrame,由于一个DataFrame有多个属性列即多个Series。所以构建时先建立一个dict,这个dict的key分别是这些Series的名,value是所有Series在该属性下的value的list,注意顺序一定要一致:
importpandasaspd
person={'Name':["Braund,Mr.OwenHarris","Allen,Mr.WilliamHenry","Bonnell,Miss.Elizabeth",],'Age':[22,35,58],'Sex':["male","male","female"],
}
person_df=pd.DataFrame(person)
person_df
NameAgeSex
0Braund,Mr.OwenHarris22male1Allen,Mr.WilliamHenry35male2Bonnell,Miss.Elizabeth58female
如果对某列感兴趣,可以通过列名(DataFrame[ 列名 ])的方式直接索引,就像查找dict某个key一样
person_df['Age']
022
1 35
2 58Name:Age,dtype:int64
关于DataFrame的各项属性及方法,可以看pandas(三);Series的部分可以看pandas(四)
4)绘图
①直接对整个DataFrame用方法plot,可以得到所有数值列随Index列变化的折线图;
②对某一列用plot,可以得到该列随Index变化的折线图
③其他的散点图、箱型图,都与matplotlib的相关方法用法相似,而且可以直接从DataFrame的相关方法(见pandas(三))中找到。
④所有plot.*方法的返回值都是Matplotlib对象
5)对列的操作
①对原列的数据进行运算,得到新列的数据,并保存为新列
DataFrame['new'] = DataFrame['old'] * 2
这样就会在最右边生成一个新列'new',其值是'old'列的两倍
②用两列进行运算,结果保存为新列
DataFram