前言
本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。
作者:劉早起
PS:如有需要Python學習資料的小夥伴可以加點擊下方鏈接自行獲取
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中可以通過點擊數據—>分列並按照提示的選項設置相關參數完成分列,但是由於該列含有[]等特殊字符,所以需要先使用查找替換去掉
數據拆分
說明:將一列按照規則拆分爲多列
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中可以直接使用類似數據篩選的方法來統計薪資大於10000的崗位數量len(df[df["薪資水平"]>10000])