python实现sql数据处理_【分析篇】:Pandas像sql操作python 进行数据分析

前言:Python数据分析的基础在于对数据的提取,清洗,汇总,并思考整理发现数据规律的过程。以下模块是个人在数据分析常用模块,特此总结,便于查阅,构建数据分析体系。

数据源

导入数据

查看、检查数据DataFrame较为常见,DataFrame的生成可通过读取纯文本、Json等数据来生成,亦可以通过Python对象来生成

selectSelect ONE,THREE from df where index >= 1 and index<= 3 order by index

Select * from df where index >= 1 and index < 3 order by index

Select ONE,THREE from df

WHEREPandas实现where filter,较为常用的办法为df[df[colunm] boolean expr]

SELECT * from df where ONE > 1.1

AND

OR

IN

NOT

LIKE

某列是否包含字符.str.contains('str')

select case when ONE like '字符' then -1 else 0 end from df

DISTINCT保留重复元素中的第一个,删除重复元素的后面列

df.drop_duplicates(subset=['ONE'], keep='first', inplace=False)

1. subset,为选定的列做distinct,默认为所有列

2. keep,值选项{'first', 'last', False},保留重复元素中的第一个、最后一个,或全部删除;

3. inplace ,默认为False,返回一个新的dataframe;若为True,则返回去重后的原dataframeselect count(distinct ONE) from df

GROUPgroup一般会配合合计函数(Aggregate functions)使用,

比如:count、avg等。Pandas对合计函数的支持有限,有count和size函数实现SQL的countselect ONE,count(*) from df group by ONE

select THREE,sum(two) from df grouo by THREE

df.groupby('ONE').agg({'TWO': np.max})

select TWO,count(distinct one) fron df group by TWO

ASSQL中使用as修改列的别名,Pandas也支持这种修改:df.columns = ['A', 'B', 'C']

df.rename(columns={'A': 'ONE', 'B': 'TWO', 'C': 'THREE'}, inplace=True)

JOINPandas中join的实现也有两种

A. JOIN,横向连接 len(df) = len(df1) --> df + df1,按DataFrame的index进行join的df.join(dfOne, how='left')

B.按on指定的列做join。Pandas满足left、right、inner、full outer四种join方式select * from df as a left join dfOne as b on a.ONE = b.ONEs

pd.merge(df, dfOne, how='left', left_on='ONE', right_on='ONEs')df1.join(df2,on=col1,how='inner'):对df1的列和df2的列执行SQL形式的join

OEDERPandas中支持多列order,并可以调整不同列的升序/降序,有更高的排序自由度:select * from df order by ONE desc,THREE

df.sort_values(['ONE', 'THREE'], ascending=[False, True])

REPALCE全局替换

局部替换

指定条件替换

自定义函数map(func),为Series的函数,DataFrame不能直接调用,需取列后再调用

apply(func,axis=1) 对DataFrame中的每一行或则列应用函数func

applymap(func),为element-wise函数,对每一个元素做func操作

数据清洗

单字段的处理

数据缺失的处理,去除数据结构中值为空的数据 或者 数据零填充

数据类型转换,astype(str)转化为字符串

字符串提取,该列中第一个字符,字段的截取

字段的拆分 相当于分列的功能

字段的合并,字段的合并

数据的标准化最小-最大规范化

零-均值规范化

小数定标规范化

数据的分组根据数据分析的对象特征,按照一定的数值指标,把数据分析对象划分为不同的区间的部分来进行研究cut 函数 :cut(series,bins,right=True,labels=NULL)

1.series-需要分组的数据

2. bins-分组的划分数据 right-分组的时候,右边是否闭合,labels-分组的自定义标签,可以不自定义

时间格式转换

日期的抽取

数据保存

总结最后引用数据海洋前辈一句话,‘数据分析是指将隐没在数据中的信息,进行集中、清洗、提炼并发现策略的过程’。独立优秀的数据提取和数据清洗能力是每个数据分析师的基本功,夯实基本功,跑的更远!

你可能感兴趣的:(python实现sql数据处理)