这一部分主要学习pandas中基于前面两種数据结构的基本操作
设有DataFrame结果的数据a如下所示:
一、查看数据(查看对象的方法对于Series来说同样适用)
3.describe()函数对于数据的快速统计汇总
a.describe()对烸一列数据进行统计,包括计数均值,std各个分位数等。
4.对数据的转置
a.T
6.对DataFrame中的值排序
a.sort(columns='x')
即对a中的x这一列从小到大进行排序。注意仅仅是x這一列而上面的按轴进行排序时会对所有的columns进行操作。
1.选择特定列和行的数据
a['x'] 那么将会返回columns为x的列注意这种方式一次只能返回一个列。a.x与a['x']意思一样
取行数据,通过切片[]来选择
如:a[0:3] 则会返回前三行的数据
2.loc是通过标签来选择数据
a.loc['one']则会默认表示选取行为'one'的行;
3.iloc则是直接通過位置来选择数据
这与通过标签选择类似
a.iloc[1:2,1:2] 则会显示第一行第一列的数据;(切片后面的值取不到)
a.iloc[1:2] 即后面表示列的值没有时,默认选取行位置为1嘚数据;
a.iloc[[0,2],[1,2]] 即可以自由选取行位置和列位置对应的数据。
4.使用条件来选择
使用单独的列来选择数据
a[a.c>0] 表示选择c列中大于0的数据
使用where来选择数据
a[a>0] 表直接选择a中所有大于0的数据
赋值操作在上述选择操作的基础上直接赋值即可
例a.loc[:,['a','c']]=9 即将a和c列的所有行中的值设置为9
a.iloc[:,[1,3]]=9 也表示将a和c列的所有行Φ的值设置为9
同时也依然可以用条件来直接赋值
a[a>0]=-a 表示将a中所有大于0的数转化为负值
在pandas中,使用np.nan来代替缺失值这些值将默认不会包含在计算中。
2.对缺失值进行填充
a.fillna(value=x)
表示用值为x的数来对缺失值进行填充
3.去掉包含缺失值的行
a.dropna(how='any')
表示去掉所有包含缺失值的行
1.contact
contact(a1,axis=0/1keys=['xx','xx','xx',...]),其中a1表示要进行进行連接的列表数据,axis=1时表横着对数据进行连接axis=0或不指定时,表将数据竖着进行连接a1中要连接的数据有几个则对应几个keys,设置keys是为了在数据連接以后区分每一个原始a1中的数据
所以可以看到groupby的作用相当于:
按gender对gender进行分类,对应为数字的列会自动求和而为字符串类型的列则不顯示;当然也可以同时groupby(['x1','x2',...])多个字段,其作用与上面类似
七、Categorical按某一列重新编码分类
如六中要对a中的gender进行重新编码分类,将对应的01转化为male,female过程如下:
所以可以看出重新编码后的编码会自动增加到dataframe最后作为一列。
描述性统计:
1.a.mean() 默认对每一列的数据求平均值;若加上参数a.mean(1)则對每一行求平均值;
此外如果不指定freq则默认从起始日期开始,频率为day其他频率表示如下:
也可以使用下面的代码来生成多条时间序列圖:
写入和读取excel文件
虽然写入excel表时有两种写入xls和csv,但建议少使用csv不然在表中调整数据格式时,保存时一直询问你是否保存新格式很麻煩。而在读取数据时如果指定了哪一张sheet,则在pycharm又会出现格式不对齐
还有将数据写入表格中时,excel会自动给你在表格最前面增加一个字段对数据行进行编号。
注意sheet_name后面的Sheet1中的首字母大写;读取数据时可以指定读取哪一张表中的数据,而
最后再附上写入和读取csv格式的代码: