统计分析哪家强?选Pandas还是选SQL
2024-12-15 电商
pd.read_sql( "SELECT name FROM sweets WHERE weight = '300'", connector)
output
我们再来看一个相值得注意的案例,审核显露效率正数100的佳肴重新命名,code如下
# Pandas
df_sweets[ 'cost'] = pd.to_numeric(df_sweets[ 'cost'])
df_sweets[df_sweets.cost == 100].name
# SQL
pd.read_sql( "SELECT name FROM sweets WHERE cost = '100'", connector)
output
Milty
针对文本型的目录,我们也可以实质性来审核显露我们只想的目录,code如下
# Pandas
df_sweets[df_sweets.name.str.startswith( 'M')].name
# SQL
pd.read_sql( "SELECT name FROM sweets WHERE name LIKE 'M%'", connector)
output
Milty
Mikus
Mivi
Mi
Misa
Maltik
Macus
当然在 SQL 关键字总括的通配符, % 坚称匹配任意数量的字母,而 _ 坚称匹配任意一个字母,具体情况的区别如下
# SQL
pd.read_sql( "SELECT name FROM sweets WHERE name LIKE 'M%'", connector)
output
pd.read_sql( "SELECT name FROM sweets WHERE name LIKE 'M_'", connector)
output
复杂必需的审核
上去我们来看一下多个必需的目录审核,例如我们只想重量正数300并且效率价压制在150的佳肴重新命名,code如下
# Pandas
df_sweets[(df_sweets.cost == 150) & (df_sweets.weight == 300)].name
# SQL
pd.read_sql( "SELECT name FROM sweets WHERE cost = '150' AND weight = '300'", connector)
output
Mikus
或者是审核显露效率价压制在200-300彼此之间的佳肴重新命名,code如下
# Pandas
df_sweets[df_sweets[ 'cost'].between(200, 300)].name
# SQL
pd.read_sql( "SELECT name FROM sweets WHERE cost BETWEEN '200' AND '300'", connector)
output
要是牵涉到排序的原因,在 SQL 总括应用于的是 ORDER BY 关键字,code如下
# SQL
pd.read_sql( "SELECT name FROM sweets ORDER BY id DESC", connector)
output
而在 Pandas 模块化总括线程的则是 sort_values 工具,code如下
# Pandas
df_sweets.sort_values(by= 'id', ascending=False).name
output
11 Macus
10 Maltik
9 Sor
8 Co
7 Soviet
6 Soucus
5 Soltic
4 Misa
3 Mi
2 Mivi
1 Mikus
0 Milty
Name: name, dtype: object
审核显露效率价最高的佳肴重新命名,在 Pandas 模块化总括的code是这个仿佛的
df_sweets[df_sweets.cost == df_sweets.cost.max].name
output
11 Macus
Name: name, dtype: object
而在SQL关键字总括的code,我们必需首先审核显露效率最高的是哪个佳肴,然后再展开实质性的处理,code如下
pd.read_sql( "SELECT name FROM sweets WHERE cost = (SELECT MAX(cost) FROM sweets)", connector)
我们只想看一下是配送的小城镇具体情况是有哪几个,在 Pandas 模块化总括的code是这个仿佛的,通过线程 unique 工具
df_storehouses[ 'city'].unique
output
array([ 'Moscow', 'Saint-petersburg', 'Yekaterinburg'], dtype=object)
而在 SQL 关键字总括则互换的是 DISTINCT 网址
pd.read_sql( "SELECT DISTINCT city FROM storehouses", connector)
目录预选统计数据
在 Pandas 模块化总括预选统计数据一般线程的都是 groupby 工具,然后上去再加进一个统计数据线性,例如是求分概率分布的 mean 工具,或者是讲和的 sum 工具等等,例如我们只想查找显露在不止一个小城镇装配制品佳肴的重新命名,code如下
df_manufacturers.groupby( 'name').name.count[df_manufacturers.groupby( 'name').name.count> 1]
output
name
Mishan 2
Name: name, dtype: int64
而在 SQL 关键字总括的预选也是 GROUP BY ,上去要是还有其他必需的话,用的是 HAVING 网址,code如下
pd.read_sql( """
SELECT name, COUNT(name) as 'name_count' FROM manufacturers
GROUP BY name HAVING COUNT(name)> 1
" "", connector)
目录分拆
当两个目录集或者是多个目录集必需展开分拆的时候,在 Pandas 模块化总括,我们可以线程 merge 工具,例如我们将 df_sweets 目录集和 df_sweets_types 两目录集展开分拆,其中所 df_sweets 总括的 sweets_types_id 是该表的外键
df_sweets.head
output
df_sweets_types.head
output
具体情况目录分拆的code如下所示
df_sweets_1 = df_sweets.merge(df_sweets_types, left_on= 'sweets_types_id', right_on= 'id')
output
我们再实质性的审核显露巧克力菜肴的佳肴,code如下
df_sweets_1.query( 'name_y == "chocolate"').name_x
output
10 Misa
11 Sor
Name: name_x, dtype: object
而 SQL 关键字则变得比较单纯了,code如下
# SQL
pd.read_sql( """
SELECT sweets.name FROM sweets
JOIN sweets_types ON sweets.sweets_types_id = sweets_types.id
WHERE sweets_types.name = 'chocolate';
" "", connector)
output
目录集的在结构上
我们来检视一下目录集的在结构上,在 Pandas 模块化总括直接检视 shape 物件即可,code如下
df_sweets.shape
output
(12, 10)
而在 SQL 关键字总括,则是
pd.read_sql( "SELECT count(*) FROM sweets;", connector)
output
点这里👇关注我,记得标星哦~
CDA课程咨询
。健胃消食片和乳酸菌素片的区别干燥综合症用海露滴眼液能缓解吗
金奥康奥美拉唑一次吃几粒
老年痴呆能治愈吗
积食消化不良怎么办
视疲劳怎么缓解
如何让脸色红润有光泽
用血糖仪测血糖准吗
自己家用的血糖仪选什么好
英太青凝胶对腱鞘炎有用吗
- 05-10麦格理:重申友邦保险(01299)“中性”下调 目标价升至83港元
- 05-10来,准时春天的约定!苹果初夏发布会定档 3 月 8 日
- 05-101元起售、每家仅限5亿!首批北交所主题基金本周五开卖,要不必上车?
- 05-10有一种离别,早已刻在心上
- 05-10莱尔科技高溢价收购佛山大为股权 后者主营固态电池涂碳产品
- 05-10苹果官宣:3月9日合办春季发布会
- 05-10新浪云音乐重启IPO进程,上半年净亏损38.09亿元
- 05-10文|枫叶念完别人的好,修自己的心
- 05-10江阴江化微电子材料大股东有限公司 关于控股股东筹划公司控制权变更事项的停牌公告
- 05-10一个人最了不起的灵活性:自愈灵活性