<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          我用Python展示Excel中常用的20個(gè)操作

          共 4178字,需瀏覽 9分鐘

           ·

          2020-08-12 02:48


          前言

          Excel與Python都是數(shù)據(jù)分析中常用的工具,本文將使用動(dòng)態(tài)圖(Excel)+代碼(Python)的方式來(lái)演示這兩種工具是如何實(shí)現(xiàn)數(shù)據(jù)的讀取、生成、計(jì)算、修改、統(tǒng)計(jì)、抽樣、查找、可視化、存儲(chǔ)數(shù)據(jù)處理中的常用操作!

          數(shù)據(jù)讀取

          說(shuō)明:讀取本地Excel數(shù)據(jù)

          Excel


          Excel讀取本地?cái)?shù)據(jù)需要打開(kāi)目標(biāo)文件夾選中該文件并打開(kāi)

          Pandas


          Pandas支持讀取本地Excel、txt文件,也支持從網(wǎng)頁(yè)直接讀取表格數(shù)據(jù),只用一行代碼即可,例如讀取上述本地Excel數(shù)據(jù)可以使用pd.read_excel("示例數(shù)據(jù).xlsx")

          數(shù)據(jù)生成

          說(shuō)明:生成指定格式/數(shù)量的數(shù)據(jù)

          Excel


          以生成10*2的0—1均勻分布隨機(jī)數(shù)矩陣為例,在Excel中需要使用rand()函數(shù)生成隨機(jī)數(shù),并手動(dòng)拉取指定范圍

          Pandas


          在Pandas中可以結(jié)合NumPy生成由指定隨機(jī)數(shù)(均勻分布、正態(tài)分布等)生成的矩陣,例如同樣生成10*2的0—1均勻分布隨機(jī)數(shù)矩陣,使用一行代碼即可:pd.DataFrame(np.random.rand(10,2))

          數(shù)據(jù)存儲(chǔ)

          說(shuō)明:將表格中的數(shù)據(jù)存儲(chǔ)至本地

          Excel


          在Excel中需要點(diǎn)擊保存并設(shè)置格式/文件名

          ?

          Pandas


          ?在Pandas中可以使用pd.to_excel("filename.xlsx")來(lái)將當(dāng)前工作表格保存至當(dāng)前目錄下,當(dāng)然也可以使用to_csv保存為csv等其他格式,也可以使用絕對(duì)路徑來(lái)指定保存位置

          數(shù)據(jù)篩選

          說(shuō)明:按照指定要求篩選數(shù)據(jù)

          Excel


          使用我們之前的示例數(shù)據(jù),在Excel中篩選出薪資大于5000的數(shù)據(jù)步驟如下

          ??

          Pandas


          在Pandas中,可直接對(duì)數(shù)據(jù)框進(jìn)行條件篩選,例如同樣進(jìn)行單個(gè)條件(薪資大于5000)的篩選可以使用df[df['薪資水平']>5000],如果使用多個(gè)條件的篩選只需要使用&(并)與|(或)操作符實(shí)現(xiàn)

          數(shù)據(jù)插入

          說(shuō)明:在指定位置插入指定數(shù)據(jù)

          Excel


          在Excel中我們可以將光標(biāo)放在指定位置并右鍵增加一行/列,當(dāng)然也可以在添加時(shí)對(duì)數(shù)據(jù)進(jìn)行一些計(jì)算,比如我們就可以使用IF函數(shù)(=IF(G2>10000,"高","低")),將薪資大于10000的設(shè)為高,低于10000的設(shè)為低,添加一列在最后

          Pandas


          在pandas中,如果不借助自定義函數(shù)的話,我們可以使用cut方法來(lái)實(shí)現(xiàn)同樣操作

          bins?=?[0,10000,max(df['薪資水平'])]
          group_names?=?['低','高']
          df['new_col']?=?pd.cut(df['薪資水平'],?bins,?labels=group_names)

          數(shù)據(jù)刪除

          說(shuō)明:刪除指定行/列/單元格

          Excel


          在Excel刪除數(shù)據(jù)十分簡(jiǎn)單,找到需要?jiǎng)h除的數(shù)據(jù)右鍵刪除即可,比如刪除剛剛生成的最后一列

          Pandas


          在pandas中刪除數(shù)據(jù)也很簡(jiǎn)單,比如刪除最后一列使用del df['new_col']即可

          數(shù)據(jù)排序

          說(shuō)明:按照指定要求對(duì)數(shù)據(jù)排序

          Excel


          在Excel中可以點(diǎn)擊排序按鈕進(jìn)行排序,例如將示例數(shù)據(jù)按照薪資從高到低進(jìn)行排序可以按照下面的步驟進(jìn)行

          Pandas


          在pandas中可以使用sort_values進(jìn)行排序,使用ascending來(lái)控制升降序,例如將示例數(shù)據(jù)按照薪資從高到低進(jìn)行排序可以使用df.sort_values("薪資水平",ascending=False,inplace=True)

          缺失值處理

          說(shuō)明:對(duì)缺失值(空值)按照指定要求處理

          Excel


          在Excel中可以按照查找—>定位條件—>空值來(lái)快速定位數(shù)據(jù)中的空值,接著可以自己定義缺失值的填充方式,比如將缺失值用上一個(gè)數(shù)據(jù)進(jìn)行填充

          Pandas


          在pandas中可以使用data.isnull().sum()來(lái)檢查缺失值,之后可以使用多種方法來(lái)填充或者刪除缺失值,比如我們可以使用df = df.fillna(axis=0,method='ffill')來(lái)橫向/縱向用缺失值前面的值替換缺失值

          數(shù)據(jù)去重

          說(shuō)明:對(duì)重復(fù)值按照指定要求處理

          Excel


          在Excel中可以通過(guò)點(diǎn)擊數(shù)據(jù)—>刪除重復(fù)值按鈕并選擇需要去重的列即可,例如對(duì)示例數(shù)據(jù)按照創(chuàng)建時(shí)間列進(jìn)行去重,可以發(fā)現(xiàn)去掉了196 個(gè)重復(fù)值,保留了 629 個(gè)唯一值。


          Pandas


          在pandas中可以使用drop_duplicates來(lái)對(duì)數(shù)據(jù)進(jìn)行去重,并且可以指定列以及保留順序,例如對(duì)示例數(shù)據(jù)按照創(chuàng)建時(shí)間列進(jìn)行去重df.drop_duplicates(['創(chuàng)建時(shí)間'],inplace=True),可以發(fā)現(xiàn)和Excel處理的結(jié)果一致保留了?629?個(gè)唯一值。

          格式修改

          說(shuō)明:修改指定數(shù)據(jù)的格式

          Excel


          在Excel中可以選中需要轉(zhuǎn)換格式的數(shù)據(jù)之后右鍵—>修改單元格格式來(lái)選擇我們需要的格式

          Pandas


          在Pandas中沒(méi)有一個(gè)固定修改格式的方法,不同的數(shù)據(jù)格式有著不同的修改方法,比如類似Excel中將創(chuàng)建時(shí)間修改為年-月-日可以使用df['創(chuàng)建時(shí)間'] = df['創(chuàng)建時(shí)間'].dt.strftime('%Y-%m-%d')

          數(shù)據(jù)交換

          說(shuō)明:交換指定數(shù)據(jù)

          Excel


          在Excel中交換數(shù)據(jù)是很常用的操作,以交換示例數(shù)據(jù)中地址與崗位兩列為例,可以選中地址列,按住shift鍵并拖動(dòng)邊緣至下一列松開(kāi)即可

          Pandas


          在pandas中交換兩列也有很多方法,以交換示例數(shù)據(jù)中地址與崗位兩列為例,可以通過(guò)修改列號(hào)來(lái)實(shí)現(xiàn)

          數(shù)據(jù)合并

          說(shuō)明:將兩列或多列數(shù)據(jù)合并成一列

          Excel


          在Excel中可以使用公式也可以使用Ctrl+E快捷鍵完成多列合并,以公式為例,合并示例數(shù)據(jù)中的地址+崗位列步驟如下

          Pandas


          在Pandas中合并多列比較簡(jiǎn)單,類似于之前的數(shù)據(jù)插入操作,例如合并示例數(shù)據(jù)中的地址+崗位列使用df['合并列'] = df['地址'] + df['崗位']

          數(shù)據(jù)拆分

          說(shuō)明:將一列按照規(guī)則拆分為多列

          Excel


          在Excel中可以通過(guò)點(diǎn)擊數(shù)據(jù)—>分列并按照提示的選項(xiàng)設(shè)置相關(guān)參數(shù)完成分列,但是由于該列含有[]等特殊字符,所以需要先使用查找替換去掉

          Pandas


          在Pandas中可以使用.split來(lái)完成分列,但是在分列完畢后需要使用merge來(lái)將分列完的數(shù)據(jù)添加至原DataFrame,對(duì)于分列完的數(shù)據(jù)含有[]字符,我們可以使用正則或者字符串lstrip方法進(jìn)行處理,但因不是pandas特性,此處不再展開(kāi)。

          數(shù)據(jù)分組

          說(shuō)明:對(duì)數(shù)據(jù)進(jìn)行分組計(jì)算

          Excel


          在Excel中對(duì)數(shù)據(jù)進(jìn)行分組計(jì)算需要先對(duì)需要分組的字段進(jìn)行排序,之后可以通過(guò)點(diǎn)擊分類匯總并設(shè)置相關(guān)參數(shù)完成,比如對(duì)示例數(shù)據(jù)的學(xué)歷進(jìn)行分組并求不同學(xué)歷的平均薪資

          Pandas


          在Pandas中對(duì)數(shù)據(jù)進(jìn)行分組計(jì)算可以使用groupby輕松搞定,比如使用df.groupby("學(xué)歷").mean()一行代碼即可對(duì)示例數(shù)據(jù)的學(xué)歷進(jìn)行分組并求不同學(xué)歷的平均薪資,結(jié)果與Excel一致

          數(shù)據(jù)計(jì)算

          說(shuō)明:對(duì)數(shù)據(jù)進(jìn)行一些計(jì)算

          Excel


          在Excel中有很多計(jì)算相關(guān)的公式,比如可以使用COUNTIFS來(lái)統(tǒng)計(jì)薪資大于10000的崗位數(shù)量有518個(gè)

          Pandas


          在Pandas中可以直接使用類似數(shù)據(jù)篩選的方法來(lái)統(tǒng)計(jì)薪資大于10000的崗位數(shù)量len(df[df["薪資水平"]>10000])

          數(shù)據(jù)統(tǒng)計(jì)

          說(shuō)明:對(duì)數(shù)據(jù)進(jìn)行一些統(tǒng)計(jì)計(jì)算

          Excel


          在Excel中有很多統(tǒng)計(jì)相關(guān)的公式,也有現(xiàn)成的分析工具,比如對(duì)薪資水平列進(jìn)行描述性統(tǒng)計(jì)分析,可以通過(guò)添加工具庫(kù)之后點(diǎn)擊數(shù)據(jù)分析按鈕并設(shè)置相關(guān)參數(shù)

          Pandas


          在pandas中也有現(xiàn)成的函數(shù)describe快速完成對(duì)數(shù)據(jù)的描述性統(tǒng)計(jì),比如使用df["薪資水平"].describe()即可得到薪資列的描述性統(tǒng)計(jì)結(jié)果

          數(shù)據(jù)可視化

          說(shuō)明:對(duì)數(shù)據(jù)進(jìn)行可視化

          Excel


          在Excel中可以通過(guò)點(diǎn)擊插入并選擇圖表來(lái)快速完成對(duì)數(shù)據(jù)的可視化,比如制作薪資的直方圖,并且有很多樣式可以直接使用

          Pandas


          在Pandas中也支持直接對(duì)數(shù)據(jù)繪制不同可視化圖表,例如直方圖,可以使用plot或者直接使用hist來(lái)制作df["薪資水平"].hist()

          數(shù)據(jù)抽樣

          說(shuō)明:對(duì)數(shù)據(jù)按要求采樣

          Excel


          在Excel中抽樣可以使用公式也可以使用分析工具庫(kù)中的抽樣,但是僅支持對(duì)數(shù)值型的列抽樣,比如隨機(jī)抽20個(gè)示例數(shù)據(jù)中薪資的樣本

          Pandas


          在pandas中有抽樣函數(shù)sample可以直接抽樣,并且支持任意格式的數(shù)據(jù)抽樣,可以按照數(shù)量/比例抽樣,比如隨機(jī)抽20個(gè)示例數(shù)據(jù)中的樣本

          數(shù)據(jù)透視表

          說(shuō)明:制作數(shù)據(jù)透視表

          Excel


          數(shù)據(jù)透視表是一個(gè)非常強(qiáng)大的工具,在Excel中有現(xiàn)成的工具,只需要選中數(shù)據(jù)—>點(diǎn)擊插入—>數(shù)據(jù)透視表即可生成,并且支持字段的拖取實(shí)現(xiàn)不同的透視表,非常方便,比如制作地址、學(xué)歷、薪資的透視表

          Pandas


          在Pandas中制作數(shù)據(jù)透視表可以使用pivot_table函數(shù),例如制作地址、學(xué)歷、薪資的透視表pd.pivot_table(df,index=["地址","學(xué)歷"],values=["薪資水平"]),雖然結(jié)果一樣,但是并沒(méi)有Excel一樣方便調(diào)整與多樣

          vlookup

          說(shuō)明:利用VLOOKUP查找數(shù)據(jù)

          Excel


          VLOOKUP算是EXCEL中最核心的功能之一了,我們用一個(gè)簡(jiǎn)單的數(shù)據(jù)來(lái)進(jìn)行示例

          Pandas


          在Pandas中沒(méi)有現(xiàn)成的vlookup函數(shù),所以實(shí)現(xiàn)匹配查找需要一些步驟,首先我們讀取該表格

          接著將該dataframe切分為兩個(gè)

          最后修改索引并使用update進(jìn)行兩表的匹配

          結(jié)束語(yǔ)

          以上就是使用Pandas來(lái)演示如何實(shí)現(xiàn)Excel中的常用操作的全部過(guò)程,其實(shí)可以發(fā)現(xiàn)Excel的優(yōu)點(diǎn)就是大多由交互式的點(diǎn)擊完成數(shù)據(jù)處理,而Pandas則完全依賴于代碼,對(duì)于有些操作比如數(shù)據(jù)透視表,用Excel制作更加方便,而有些操作比如數(shù)據(jù)的分組、計(jì)算等,因Pandas可以與NumPy等其他優(yōu)秀的Python庫(kù)結(jié)合而顯得更加強(qiáng)大,所以我們?cè)谔幚頂?shù)據(jù)時(shí)也需要正確選擇使用的工具!


          python爬蟲(chóng)人工智能大數(shù)據(jù)公眾號(hào)


          瀏覽 82
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产天堂在线 | 九七人人| 婷婷六月综合 | 成人天堂网 | 国产动态图 |