像Excel同样使用python进行数据分析(3)

像Excel同样使用python进行数据分析(1)

像Excel同样使用python进行数据分析(2)

7,数据汇总

第七部分是对数据进行分类汇总,Excel中使用分类汇总和数据透视能够按特定维度对数据进行汇总,python中使用的主要函数是groupby和pivot_table。下面分别介绍这两个函数的使用方法。html

分类汇总

Excel的数据目录下提供了“分类汇总”功能,能够按指定的字段和汇总方式对数据表进行汇总。Python中经过Groupby函数完成相应的操做,并能够支持多级分类汇总。python


Groupby是进行分类汇总的函数,使用方法很简单,制定要分组的列名称就能够,也能够同时制定多个列名称,groupby按列名称出现的顺序进行分组。同时要制定分组后的汇总方式,常见的是计数和求和两种。函数

# 对全部列进行计数汇总
df_inner.groupby('city').count()

 

 
像Excel同样使用python进行数据分析(3)-数据分析网

能够在groupby中设置列名称来对特定的列进行汇总。下面的代码中按城市对id字段进行汇总计数。post

 
#对特定的ID列进行计数汇总
df_inner.groupby('city')['id'].count() city beijing 2 guangzhou 1 shanghai 2 shenzhen 1 Name: id, dtype: int64

 

在前面的基础上增长第二个列名称,分布对city和size两个字段进行计数汇总。spa

#对两个字段进行汇总计数
df_inner.groupby(['city','size'])['id'].count() city size beijing A 1 F 1 guangzhou A 1 shanghai A 1 B 1 shenzhen C 1 Name: id, dtype: int64

 

 

除了计数和求和外,还能够对汇总后的数据同时按多个维度进行计算,下面的代码中按城市对price字段进行汇总,并分别计算price的数量,总金额和平均金额。3d

#对city字段进行汇总并计算price的合计和均值。
df_inner.groupby('city')['price'].agg([len,np.sum, np.mean])

 

 
像Excel同样使用python进行数据分析(3)-数据分析网

数据透视

Excel中的插入目录下提供“数据透视表”功能对数据表按特定维度进行汇总。Python中也提供了数据透视表功能。经过pivot_table函数实现一样的效果。

数据透视表也是经常使用的一种数据分类汇总方式,而且功能上比groupby要强大一些。下面的代码中设定city为行字段,size为列字段,price为值字段。分别计算price的数量和金额而且按行与列进行汇总。excel

#数据透视表
pd.pivot_table(df_inner,index=["city"],values=["price"],columns=["size"],aggfunc=[len,np.sum],fill_value=0,margins=True)

 

 
像Excel同样使用python进行数据分析(3)-数据分析网

8,数据统计

第九部分为数据统计,这里主要介绍数据采样,标准差,协方差和相关系数的使用方法。code

数据采样

Excel的数据分析功能中提供了数据抽样的功能,以下图所示。Python经过sample函数完成数据采样。htm

 

Sample是进行数据采样的函数,设置n的数量就能够了。函数自动返回参与的结果。blog

#简单的数据采样
df_inner.sample(n=3)

 

 
 

Weights参数是采样的权重,经过设置不一样的权重能够更改采样的结果,权重高的数据将更有但愿被选中。这里手动设置6条数据的权重值。将前面4个设置为0,后面两个分别设置为0.5。

#手动设置采样权重
weights = [0, 0, 0, 0, 0.5, 0.5] df_inner.sample(n=2, weights=weights)

 

从采样结果中能够看出,后两条权重高的数据被选中。


Sample函数中还有一个参数replace,用来设置采样后是否放回。

#采样后不放回
df_inner.sample(n=6, replace=False)

 

 
#采样后放回
df_inner.sample(n=6, replace=True)

 

描述统计

Excel中的数据分析中提供了描述统计的功能。Python中能够经过Describe对数据进行描述统计。

 

Describe函数是进行描述统计的函数,自动生成数据的数量,均值,标准差等数据。下面的代码中对数据表进行描述统计,并使用round函数设置结果显示的小数位。并对结果数据进行转置。

#数据表描述性统计
df_inner.describe().round(2).T

 

 

像Excel同样使用python进行数据分析(3)-数据分析网
标准差
Python中的Std函数用来接算特定数据列的标准差。

#标准差
df_inner['price'].std() 1523.3516556155596

 

 

协方差
Excel中的数据分析功能中提供协方差的计算,python中经过cov函数计算两个字段或数据表中各字段间的协方差。

 

Cov函数用来计算两个字段间的协方差,能够只对特定字段进行计算,也能够对整个数据表中各个列之间进行计算。

#两个字段间的协方差
df_inner['price'].cov(df_inner['m-point']) 17263.200000000001
#数据表中全部字段间的协方差
df_inner.cov()

 

 
 
像Excel同样使用python进行数据分析(3)-数据分析网

相关分析
Excel的数据分析功能中提供了相关系数的计算功能,python中则经过corr函数完成相关分析的操做,并返回相关系数。

 

Corr函数用来计算数据间的相关系数,能够单独对特定数据进行计算,也能够对整个数据表中各个列进行计算。相关系数在-1到1之间,接近1为正相关,接近-1为负相关,0为不相关。

#相关性分析
df_inner['price'].corr(df_inner['m-point']) 0.77466555617085264
#数据表相关性分析
df_inner.corr()

 

 
 
像Excel同样使用python进行数据分析(3)-数据分析网

9,数据输出

第九部分是数据输出,处理和分析完的数据能够输出为xlsx格式和csv格式。

写入excel

#输出到excel格式
df_inner.to_excel('excel_to_python.xlsx', sheet_name='bluewhale_cc')

写入csv

#输出到CSV格式
df_inner.to_csv('excel_to_python.csv')

 

 

在数据处理的过程当中,大部分基础工做是重复和机械的,对于这部分基础工做,咱们可使用自定义函数进行自动化。如下简单介绍对数据表信息获取自动化处理。

#建立数据表
df = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006], "date":pd.date_range('20130102', periods=6), "city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai','BEIJING '], "age":[23,44,54,32,34,32], "category":['100-A','100-B','110-A','110-C','210-A','130-F'], "price":[1200,np.nan,2133,5433,np.nan,4432]}, columns =['id','date','city','category','age','price'])

 

#建立自定义函数
def table_info(x): shape=x.shape types=x.dtypes colums=x.columns print("数据维度(行,列):\n",shape) print("数据格式:\n",types) print("列名称:\n",colums)

 

#调用自定义函数获取df数据表信息并输出结果
table_info(df) 数据维度(行,列): (6, 6) 数据格式: id int64 date datetime64[ns] city object category object age int64 price float64 dtype: object 列名称: Index(['id', 'date', 'city', 'category', 'age', 'price'], dtype='object')

 

 
 
 

本篇是《像Excel同样使用python进行数据分析》系列文章的最后一篇。在这个系列中咱们列举了python中36个简单的函数来实现excel中最多见的一些功能。感兴趣的朋友能够下载并阅读pandas官方文档,里面有更详细的函数说明。

相关文章
相关标签/搜索