我用Python展示Excel中常用的20個操作
前言
Excel與Python都是數據分析中常用的工具,本文將使用動態圖(Excel)+代碼(Python)的方式來演示這兩種工具是如何實現數據的 讀取、生成、計算、修改、統計、抽樣、查找、可視化、存儲 等 數據處理中的常用操作!
數據讀取
說明 :讀取本地Excel數據
Excel
Excel讀取本地數據需要打開目標文件夾選中該文件並打開
Pandas
Pandas支持讀取本地Excel、txt文件,也支持從網頁直接讀取表格數據,只用一行代碼即可,例如讀取上述本地Excel數據可以使用
pd.read_excel("示例數據.xlsx")
數據生成
說明 :生成指定格式/數量的數據
Excel
以生成 10*2的0—1均勻分佈隨機數矩陣
爲例,在Excel中需要使用
rand()
函數生成隨機數,並手動拉取指定範圍
Pandas
在Pandas中可以結合NumPy生成由指定隨機數(均勻分佈、正態分佈等)生成的矩陣,例如同樣生成 10*2的0—1均勻分佈隨機數矩陣
爲
,使用一行代碼即可:
pd.DataFrame(np.random.rand(10,2))
數據存儲
說明 :將表格中的數據存儲至本地
Excel
在Excel中需要點擊保存並設置格式/文件名
Pandas
在Pandas中可以
使用
pd.to_excel("filename.xlsx")
來將當前工作表格保存至當前目錄下,當然也可以使用
to_csv
保存爲csv等其他格式,也可以使用絕對路徑來指定保存位置
數據篩選
說明 :按照指定要求篩選數據
Excel
使用我們之前的示例數據,在Excel中篩選出
薪資大於5000
的數據步驟如下
Pandas
在Pandas中,可直接對數據框進行條件篩選,例如同樣進行單個條件( 薪資大於5000 )的篩選可以使用 df[df['薪資水平']>5000] ,如果使用多個條件的篩選只需要使用 & (並)與 | (或)操作符實現
數據插入
說明 :在指定位置插入指定數據
Excel
在Excel中我們可以將光標放在指定位置並右鍵增加一行/列,當然也可以在添加時對數據進行一些計算,比如我們就可以使用IF函數(
=IF(G2>10000,"高","低")
),將薪資大於10000的設爲高,低於10000的設爲低, 添加一列
在最後
Pandas
在pandas中,如果不借助自定義函數的話,我們可以使用
cut
方法來實現同樣操作
bins = [0,10000,max(df['薪資水平'])]
group_names = ['低','高']
df['new_col'] = pd.cut(df['薪資水平'], bins, labels=group_names)
數據刪除
說明 :刪除指定行/列/單元格
Excel
在Excel刪除數據十分簡單,找到需要刪除的數據 右鍵刪除 即可,比如刪除剛剛生成的最後一列
Pandas
在pandas中刪除數據也很簡單,比如刪除最後一列使用
del df['new_col']
即可
數據排序
說明 :按照指定要求對數據排序
Excel
在Excel中可以點擊排序按鈕進行排序,例如將示例數據按照薪資從高到低進行排序可以按照下面的步驟進行
Pandas
在pandas中可以使用
sort_values
進行排序,使用
ascending
來控制升降序,例如 將示例數據
按照薪資
從高到低進行排序
可以使用
df.sort_values("薪資水平",ascending=False,inplace=True)
缺失值處理
說明 :對缺失值(空值)按照指定要求處理
Excel
在Excel中可以按照 查找—>定位條件—>空值 來快速定位數據中的空值,接着可以自己定義缺失值的填充方式,比如將缺失值用上一個數據進行填充
Pandas
在pandas中可以使用 data.isnull().sum() 來檢查缺失值,之後可以使用多種方法來填充或者刪除缺失值,比如我們可以使用 df = df.fillna(axis=0,method='ffill') 來橫向/縱向用缺失值前面的值替換缺失值
數據去重
說明 :對重複值按照指定要求處理
Excel
在Excel中可以通過點擊 數據—>刪除重複值 按鈕並選擇需要去重的列即可,例如對示例數據按照創建時間列進行去重,可以發現去掉了 196 個重複值, 保留了 629 個唯一值。
Pandas
在pandas中可以使用 drop_duplicates 來對數據進行去重,並且可以指定列以及保留順序, 例如對示例數據按照創建時間列進行去重 df.drop_duplicates(['創建時間'],inplace=True) ,可以發現和Excel處理的結果一致 , 保留了 629 個唯一值。
格式修改
說明 :修改指定數據的格式
Excel
在Excel中可以選中需要轉換格式的數據之後 右鍵—>修改單元格格式 來選擇我們需要的格式
Pandas
在Pandas中沒有一個固定修改格式的方法,不同的數據格式有着不同的修改方法,比如類似Excel中將創建時間修改爲年-月-日可以使用 df['創建時間'] = df['創建時間'].dt.strftime('%Y-%m-%d')
數據交換
說明 :交換指定數據
Excel
在Excel中交換數據是很常用的操作,以交換示例數據中地址與崗位兩列爲例,可以選中地址列,按住shift鍵並拖動邊緣至下一列鬆開即可
Pandas
在pandas中交換兩列也有很多方法, 以交換示例數據中地址與崗位兩列爲例,可以通過修改列號來實現
數據合併
說明 :將兩列或多列數據合併成一列
Excel
在Excel中可以使用公式也可以使用 Ctrl+E 快捷鍵完成多列合併,以公式爲例,合併示例數據中的地址+崗位列步驟如下
Pandas
在Pandas中合併多列比較簡單,類似於之前的數據插入操作, 例如合併示例數據中的地址+崗位列使用 df['合併列'] = df['地址'] + df['崗位']
數據拆分
說明 :將一列 按照規則拆分爲多列
Excel
在Excel中可以通過點擊 數據—>分列 並按照提示的選項設置相關參數完成分列,但是由於該列含有[]等特殊字符,所以需要先使用查找替換去掉
Pandas
在Pandas中可以使用 .split 來完成分列,但是在分列完畢後需要使用 merge 來將分列完的數據添加至原DataFrame,對於分列完的數據含有[]字符,我們可以使用正則或者字符串 lstrip 方法進行處理,但因不是pandas特性,此處不再展開。
數據分組
說明 :對數據進行分組計算
Excel
在Excel中 對數據進行分組計算 需要先對需要分組的字段進行排序,之後可以通過點擊分類彙總並設置相關參數完成,比如對示例數據的學歷進行分組並求不同學歷的平均薪資
Pandas
在Pandas中對數據進行分組計 算可以使用groupby輕鬆搞定,比如使用 df.groupby("學歷").mean() 一行代碼即可 對示例 數據的 學歷進行分組並求 不同學歷的平均薪資,結果與Excel一致
數據計算
說明 :對數據進行一些計算
Excel
在Excel中有很多計算相關的公式,比如可以使用 COUNTIFS 來統計薪資大於10000的崗位數量有518個
Pandas
在Pandas中可以直接使用類似數據篩選的方法來 統計薪資大於1 0000的崗位數量 len(df[df["薪資水平"]>10000])
數據統計
說明 :對數據進行一些統計計算
Excel
在Excel中有很多統計相關的公式,也有現成的分析工具,比如對薪資水平列進行描述性統計分析,可以通過添加工具庫之後點擊數據分析按鈕並設置相關參數
Pandas
在pandas中 也有現成的函數 describe 快速完成對數據的描述性統計,比如使用 df["薪資水平"].describe() 即可得到薪資列的描述性統計結果
數據可視化
說明 :對數據進行可視化
Excel
在Excel中可以通過點擊插入並選擇圖表來快速完成對數據的可視化,比如製作薪資的直方圖,並且有很多樣式可以直接使用
Pandas
在Pandas中也支持直接對數據繪製不同可視化圖表,例如直方圖,可以使用plot或者直接使用hist來製作 df["薪資水平"].hist()
數據抽樣
說明 :對數據按要求採樣
Excel
在Excel中抽樣可以使用公式也可以使用分析工具庫中的抽樣,但是僅支持對 數值型 的列抽樣 ,比如 隨機抽20個示例數據中薪資的 樣本
Pandas
在pandas中有抽樣函數 sample 可以直接抽樣,並且支持任意格式的數據抽樣,可以按照數量/比例抽樣,比如隨機抽20個示例數據中的樣本
數據透視表
說明 :製作數據透視表
Excel
數據透視表 是一個非常強大的工具,在Excel中有現成的工具,只需要 選中數據 —> 點擊插入—>數據透視表 即可生成,並且支持 字段的拖取 實現不同的透視表,非常方便,比如製作地址、學歷、薪資的透視表
Pandas
在Pandas中製作數據透視表可以使用pivot_table函數,例如製作地址、學歷、薪資的透視表 pd.pivot_table(df,index=["地址","學歷"],values=["薪資水平"]) ,雖然結果一樣,但是並沒有Excel一樣方便調整與多樣
vlookup
說明 :利用VLOOKUP查找數據
Excel
VLOOKUP算是EXCEL中最核心的功能之一了,我們用一個簡單的數據來進行示例
Pandas
在Pandas中沒有現成的vlookup函數,所以實現匹配查找需要一些步驟,首先我們讀取該表格
接着將該dataframe切分爲兩個
最後修改索引並使用 update 進行兩表的匹配
結束語
以上就是使用Pandas來演示如何實現Excel中的常用操作的全部過程,其實可以發現Excel的優點就是大多由交互式的點擊完成數據處理,而Pandas則完全依賴於代碼,對於有些操作比如 數據透視表 ,用Excel製作更加方便,而有些操作比如數據的分組、計算等,因Pandas 可以與NumPy等其他優秀的Python庫結合 而顯得更加強大,所以我們在處理數據時也需要正確選擇使用的工具!
注:本文使用的示例數據與代碼可以在公衆號:早起Pytho後臺回覆 exce l獲取
往期精選 (:point_down: 猛戳可查看 )
覺得這篇文章還不錯?點亮 「在看」 鼓勵一下早起!
- THE END