成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Python做數據分析:Pandas常用數據查詢語法

開發 開發工具 后端
在使用Pandas之前,大多數數據分析師已經掌握了Excel和SQL,并且在剛上手Pandas時會經常習慣性想到“老辦法”。本文就是一些基礎的Pandas數據查詢操作。

在使用Pandas之前,大多數數據分析師已經掌握了Excel和SQL,并且在剛上手Pandas時會經常習慣性想到“老辦法”。"如果誰能把常用的數據查詢語法做個對比就好了 ",我也曾不止一次地想享受前人的成果,無奈發現網上的文章側重不同且深淺不一,還涉及到一些Pandas新老版本的問題,于是決定自己動手。

用Python做數據分析:Pandas常用數據查詢語法

一、舉例的數據

假設我有個六列的dataframe:一列是銷售員,一列是所屬團隊,其它四列分別是四個季度的銷售額。

六列的dataframe

1. 新增列-基于原有列的全年銷售額

首先df['Total ']確保了你在該df內新增了一個column,然后累加便可。

  1. df['Total']  = df['Q1']+df['Q2']+df['Q3']+df['Q4'] 

你可能想使用諸如sum()的函數進行這步,很可惜,sum()方法只能對列進行求和,幸好它可以幫我們求出某季度的總銷售額。df['Q1'].sum(),你就能得到一個Q1的總銷售額,除此之外,其他的聚合函數,max,min,mean都是可行的。

2. 分組統計 - 團隊競賽

那么按團隊進行統計呢?在mysql里是group by,Pandas里也不例外,你只需要df.groupby('Team').sum()就能看到期望的答案了。

分組統計 - 團隊競賽

3. 排序 - 誰是銷售冠軍

如果你關心誰的全年銷售額最多,那么就要求助于sort_values方法了,在excel內是右鍵篩選,SQL內是一個orderby。默認是順序排列的,所以要人為設定為False,如果你只想看***名,只需要在該語句末尾添加.head(1) 。

排序 - 誰是銷售冠軍

排序 - 誰是銷售冠軍

4. 切片-只給我看我關心的行

接下來就是涉及一些條件值的問題,例如我只關心Team為A的數據,在Excel里是篩選框操作,在SQL里寫個where就能搞定,在Pandas里需要做切片。

查看Pandas文檔時,你可能已經見過各種切片的函數了,有loc,iloc,ix,iy,這里不會像教科書一樣所有都講一通讓讀者搞混。這種根據列值選取行數據的查詢操作,推薦使用loc方法。

df.loc[df['Team']== 'A',['Salesman', 'Team','Year']],這里用SQL語法理解更方便,loc內部逗號前面可以理解為where,逗號后可以理解為select的字段。

 切片-只給我看我關心的行

如果想全選出,那么只需將逗號連帶后面的東西刪除作為缺省,即可達到select *的效果。

 切片-只給我看我關心的行

5. 切片 - 多條件篩選

在Pandas中多條件切片的寫法會有些繁瑣,df.loc[ (df['Team']== 'A' ) & (df['Total'] > 15000 ) ],添加括號與條件符。

切片 - 多條件篩選

這里有一個有意思的小應用,如果你想給符合某些條件的員工打上優秀的標簽,你就可以結合上述新增列和切片兩點,進行條件賦值操作。

  1. df.loc[ (df['Team']== 'A' ) & (df['Total'] > 15000 ) , 'Tag']  = 'Good' 

6. 刪除列 - 和查詢無關,但是很有用

當然這里只是個舉例,這時候我想刪除Tag列,可以del df['Tag'],又回到了之前。

二、連接

接下來要講join了,現在有每小時銷售員的職位對應表pos,分為Junior和Senior,要將他們按對應關系查到df中。

這里需要認識一下新朋友,merge方法,將兩張表作為前兩個輸入,再定義連接方式和對應鍵。對應到Excel中是Vlookup,SQL中就是join。在pandas里的連接十分簡單。

  1. df =  pd.merge(df, pos, how='inner'on='Salesman'

注意,這個時候其實我們是得到了新的df,如果不想覆蓋掉原有的df,你可以在等號左邊對結果重新命名。

這時候有了兩組標簽列(對應數值列),就可以進行多重groupby了。

當然這樣的結果并不能公平地反應出哪一組更好,因為每組的組員人數不同,可能有平均數的參與會顯得更合理,并且我們只想依據全年綜合來評價。

這里的數據是捏造的,不過也一目了然了。

三、合并操作

***以最簡單的一個合并操作收尾。

如果我又有一批數據df2,需要將兩部分數據合并。只需要使用concat方法,然后傳一個列表作為參數即可。不過前提是必須要保證他們具有相同類型的列,即使他們結構可能不同(df2的Team列在末尾,也不會影響concat結果,因為pandas具有自動對齊的功能)。

  1. pd.concat([df,df2]) 

四、尾聲

以上就是一些基礎的Pandas數據查詢操作了。作為Pandas初學者,如果能善用類比遷移的方法進行學習并進行總結是大有裨益的。如果看完本文還沒有能了解到你關心的查詢方法,可以留言聯系,或許還可以有續集。

【本文是51CTO專欄機構“豈安科技”的原創文章,轉載請通過微信公眾號(bigsec)聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2020-05-15 15:09:51

R語言數據分析

2021-04-09 23:00:12

SQL數據庫Pandas

2017-07-06 15:44:33

2019-06-26 11:10:47

Python數據分析Excel

2020-08-30 14:29:01

Pandas數據分析函數

2020-06-05 14:29:07

PythonPandas數據分析

2024-01-09 13:58:22

PandasPython數據分析

2019-07-11 10:52:02

Python統計數據

2023-11-21 09:11:31

2023-01-28 10:09:00

Pandas數據分析Python

2015-06-15 12:58:39

大數據大數據查詢

2022-11-11 11:35:14

2023-12-29 10:04:47

數據分析

2021-06-30 20:49:15

SQL子查詢數據

2017-08-03 15:20:19

大數據數據分析

2025-04-16 08:10:00

PandasPython數據分析

2022-09-07 15:47:21

數據分析對比分析大數據

2022-08-26 09:38:39

Pandas數據查詢

2020-04-21 10:11:03

Python數據分析Pandas

2024-04-09 08:47:34

PandasRollingPython
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91国产视频在线观看 | 超级黄色一级片 | 亚洲资源站 | 国产免费a| 欧美激情视频网站 | 在线日韩中文字幕 | 欧美精品一区二区在线观看 | 日韩精品在线视频免费观看 | 亚洲日韩中文字幕一区 | 午夜色婷婷 | av日韩精品| www网站在线观看 | 亚洲狠狠爱 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 日本三级网站在线观看 | 亚洲免费一 | 狠狠躁18三区二区一区 | 国精产品一区一区三区免费完 | 欧美二区在线 | 免费国产视频 | 国产日韩欧美中文 | 成人在线观看免费视频 | 欧美 日韩 国产 成人 | 国产福利91精品一区二区三区 | 日韩在线中文 | 欧美国产一区二区三区 | 午夜成人在线视频 | 亚洲一在线 | 国产探花在线精品一区二区 | 91久久北条麻妃一区二区三区 | jizjizjiz中国护士18 | av在线免费看网址 | 激情欧美一区二区三区中文字幕 | 一区二区三区四区在线视频 | 国产成人一区二区 | 仙人掌旅馆在线观看 | 中文字幕第三页 | 久草色视频 | 美女黄色在线观看 | 久久久精品一区 | 日韩在线免费 |