python-pandas库实现sql常用操作
程序员文章站
2022-03-03 19:52:37
...
python数据分析与SQL的区别
SQL数据只能应用与数据库。
pandas可以实现sql实现的所有功能。pandas也是操作结构化数据
两者都是对“表格型”数据进行操作和查询,所以很多语法都能对应起来。
对比判断:
1.select数据查询
2.where按条件查询
3.in和not in的条件查询
4.group by分组统计
5.JOIN数据关联
6.Union数据合并
7.Order Limit:先排序后分页
8.取每个分组的group的top n
9.update数据更新
10.delete删除数据
下面开始数据演练
1.py数据演示
import pandas as pd
import numpy as np
df=pd.read_csv("") #默认输入csv文件路径
df.head() #读取前5行数据(输入数字就取对应开始的行数)
# 1.select操作:select 列名 from 表A limit 5
df[["","",""]].head(5)
# 2.where条件:select 列名 from 表名 where 条件=''
# 使用括号的方式进行 连接多个条件
condition=(df["列名"]=="")&(df["列名"]=="")&(df["列名"]=="")
condition.value_count()
df[condition].head(5)
# 3.in和not in:select * from 表A where 列名 in('1','2')
df["列名"].unique() # 去重
# in
df[df["列名"].isin((1,2))].head()
# not in:df取反符号为~
df[~df["列名"].isin((1,2))].head()
# 4.1group by:select sum(),maen() from person group by sex
df.groupby("sex").agg({列名:np.sum,"列名":np.mean,"列名":np.mean})
# 4.2.多个列的聚合:select sum(),mean() from person group by sex,department
df.groupby(["sex","department"]).agg({列名:np.sum,"列名":np.mean,"列名":np.mean})
# 5.join数据关联:select * from table1 a1 join table2 a2 on a1.列名=a2.列名 limit 5
df2=pd.read_csv()
df2.head(5) # 查看前5行数据
df_merged=pd.merge(left=df1,right=df2,on="列名")
df_merged.head(5)
# 6.Union数据合并,当两个表的数据列一致时使用union。
# SQL:selet city,rank from 表1 union all select city,,rank from 表2
# 同样的df也需要有相同的列名,假设df1和df2的列名是一致的
pd.concat([df1,df2])
# 7.order limnit先排序后分页
# sql:select * from 表1 order by 列名 limit 5
df.sort_values("列名",ascending=False).head(5)
# 8.取每个分组group的top n:mysql不支持,oracle使用rownum
# 根据列名1,列名2分组,取列名3的top2
df.groupby(["列名1","列名2"]).apply(lambda df:df.sort_values("列名3",ascending=False).head(2))
# 9.update数据更新:update 表1 set 列名1=value where 条件
df.info() #查看df的信息
condition=df["列名"].isna()
condition.values_counts()
df[condition]=value
df["列名"].isna().values_counts()
# 10.delete删除数据:delete from 表1 where 列名=0
# df取反条件的值付给新的df
df_new=df[df["列名"]!=0]
df_new[df_new["列名"]=0] #可以得到0条数据
上一篇: python语法基础--习惯性小坑
下一篇: 树莓派用网线连接笔记本
推荐阅读
-
SQL Server 2008 维护计划实现数据库备份心得
-
SQL Server 数据库调整表中列的顺序操作
-
编写一个函数 reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。
-
编写一个函数reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数
-
php将mysql数据库整库导出生成sql文件的具体实现_PHP
-
mysql的数据库常用操作(添加用户)_MySQL
-
golang常用库之操作数据库的orm框架-gorm基本使用详解
-
python数据分析Numpy库的常用操作
-
SQL Server数据库实现自动备份的实例解决方法
-
Oracle数据库操作大全(十三)pl/sql编程(存储过程、函数、