Python 2.0于2000年10月16日发布。Python 3.0于2008年12月3日发布,此版不完全兼容之前的Python源代码。目前Python的正式版已经更新到3.9版本,且官方不再维护2.0版本,因此建议初学者(包括已经在学习的)至少从3.6版本开始学习,之后的版本功能差异不会太大。
在Python语言应用生态中,数据分析领域近年来十分热门。作为python中数据分析的一个非常基础的库,Pandas受到了广泛关注。Pandas可以将现实中来源多样的数据进行灵活处理和分析。简单来说,Pandas是Python这门编程语言中一个专门用来做数据分析的工具。
Pandas由Wes McKinney于2008年开发。McKinney当时在纽约的一家金融服务机构工作,金融数据分析需要一个健壮和超快速的数据分析工具,于是他就开发出了Pandas。Pandas的命名来自计量经济学中的术语“面板数据”(Panel data)。面板数据是一种数据集的结构类型,具有横截面和时间序列两个维度。
Pandas对数据的处理是为数据分析服务的,它所提供的各种数据处理方法、工具是基于数理统计学的,包含了日常应用中的众多数据分析方法。我们学习它不仅要掌控它的相应技术,还要从它的数据处理思路中学习数据分析的理论和方法。特别地,如果你想要成为数据分析师、数据产品经理、数据开发工程师等与数据相关的工作者,学习Pandas能让你深入数据理论和实践,更好地理解和应用数据。Pandas可以轻松应对白领们日常工作中的各种表格数据处理需求,还应用在金融、统计、数理研究、物理计算、社会科学、工程等领域。Pandas可以实现复杂的处理逻辑,这些往往是Excel等工具无法完成的,还可以自动化、批量化,免去我们在处理相同的大量数据时的重复工作。Pandas可以实现非常震撼的可视化效果,它对接众多令人赏心悦目的可视化库,可以实现动态数据交互效果。
本文主要围绕etl环节进行描述,读者着重关注基础应用部分即可。
1,安装python环境(自行下载安装包进行安装,建议安装3.6以及3.6以后版本),也可以通过miniconda安装。
2,安装pandas
pip install pandas或pip3 install pandas
引入pandas:
import pandas as pad
1,数据抽取,创建DataFrame
1.1 读取数组
data=[{“key”:“1”,“value”:1},{“key”:“2”,“value”:2}]
dataframe=pad.DataFrame(data)
1.2 从DataFrame生成新DataFrame
dataframe=pad.DataFrame(dataframe)
1.3 读取csv,excel,json,html等文件生成DataFrame
dataframe=pad.read_csv(“/Users/source/cloud/data/data/output.csv”)
1.4 读取数据库生成DataFrame
from sqlalchemy import create_engine
engine = create_engine(‘mysql+pymysql://root:123456@localhost:3306/test’)
dataframe = pd.read_sql_query(sql, engine)
2,数据转换
2.1 列重命名
dataframe.rename(columns={“_id”:“cmdId”},inplace=True)
2.2 删除列
dataframe.drop(columns=[‘_id_vin’,‘model’,‘cmdId’],inplace=True)
2.3 将dataframe空值设置为默认值
dataframe=dataframe.fillna(0)
2.4 转换列的数据类型
dataframe[‘count_vin’] = (dataframe[‘count_vin’]).astype(int)
2.5 获取dataframe中的某些列
data_array=dataframe[:, 2].to_list()
2.6 dataframe之间的merge(相当于sql中的inner join,left join,right join)
result=pad.merge(result,connect_mqttlogs_sum,how=“left”,on=“vin”,suffixes=(‘_vin’, ‘_con’))
2.7 groupby聚合函数
dataframe.groupby([“vin”]).count()
dataframe.groupby([“vin”]).sum()
dataframe.groupby([“vin”]).mean()
3,数据加载
3.1 dataframe写入csv,excel,json,html等文件
header = [‘vin’, ‘内部类型’,‘数量’, ‘连接数’, ‘断开连接数’,‘数量’, ‘应答数’]
dataframe.to_csv(output_path,header=header)
3.2 dataframe写入数据库(目前支持的数据库有(SQLite、MySQL、Postgres、Oracle、MS-SQL、SQLServer 和 Firebird)
from sqlalchemy import create_engine
engine = create_engine(‘mysql+pymysql://root:123456@localhost:3306/test’)
dataframe.to_sql(‘mydf’, engine, index=True)
窗口计算,移动窗口统计、日期移动等;
灵活的可视化图表输出,支持所有的统计图形;
为数据表格增加展示样式,提高数据识别效率。