<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

        python數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:16:46
        文檔

        python數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        python數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序:前面我們用pandas做了一些基本的操作,接下來進(jìn)一步了解數(shù)據(jù)的操作,數(shù)據(jù)清洗一直是數(shù)據(jù)分析中極為重要的一個(gè)環(huán)節(jié)。數(shù)據(jù)合并在pandas中可以通過merge對(duì)數(shù)據(jù)進(jìn)行合并操作。import numpy as np import pandas as pd data1 = pd.DataFr
        推薦度:
        導(dǎo)讀python數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序:前面我們用pandas做了一些基本的操作,接下來進(jìn)一步了解數(shù)據(jù)的操作,數(shù)據(jù)清洗一直是數(shù)據(jù)分析中極為重要的一個(gè)環(huán)節(jié)。數(shù)據(jù)合并在pandas中可以通過merge對(duì)數(shù)據(jù)進(jìn)行合并操作。import numpy as np import pandas as pd data1 = pd.DataFr
        前面我們用pandas做了一些基本的操作,接下來進(jìn)一步了解數(shù)據(jù)的操作,

        數(shù)據(jù)清洗一直是數(shù)據(jù)分析中極為重要的一個(gè)環(huán)節(jié)。

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

        在pandas中可以通過merge對(duì)數(shù)據(jù)進(jìn)行合并操作。

        import numpy as np
        import pandas as pd
        data1 = pd.DataFrame({'level':['a','b','c','d'],
         'numeber':[1,3,5,7]})
        
        data2=pd.DataFrame({'level':['a','b','c','e'],
         'numeber':[2,3,6,10]})
        print(data1)

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        print(data2)

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        print(pd.merge(data1,data2))

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        可以看到data1和data2中用于相同標(biāo)簽的字段顯示,而其他字段則被舍棄,這相當(dāng)于SQL中做inner join連接操作。
        此外還有outer,ringt,left等連接方式,用關(guān)鍵詞how的進(jìn)行表示。

        data3 = pd.DataFrame({'level1':['a','b','c','d'],
         'numeber1':[1,3,5,7]})
        data4=pd.DataFrame({'level2':['a','b','c','e'],
         'numeber2':[2,3,6,10]})
        print(pd.merge(data3,data4,left_on='level1',right_on='level2'))

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        兩個(gè)數(shù)據(jù)框中如果列名不同的情況下,我們可以通過指定letf_on 和right_on兩個(gè)參數(shù)把數(shù)據(jù)連接在一起

        print(pd.merge(data3,data4,left_on='level1',right_on='level2',how='left'))

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        其他詳細(xì)參數(shù)說明

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

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

        有時(shí)候我們會(huì)遇到重疊數(shù)據(jù)需要進(jìn)行合并處理,此時(shí)可以用comebine_first函數(shù)。

        data3 = pd.DataFrame({'level':['a','b','c','d'],
         'numeber1':[1,3,5,np.nan]})
         data4=pd.DataFrame({'level':['a','b','c','e'],
         'numeber2':[2,np.nan,6,10]})
         print(data3.combine_first(data4))

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        可以看到相同標(biāo)簽下的內(nèi)容優(yōu)先顯示data3的內(nèi)容,如果一個(gè)數(shù)據(jù)框中的某一個(gè)數(shù)據(jù)是缺失的,此時(shí)另外一個(gè)數(shù)據(jù)框中的元素就會(huì)補(bǔ)上

        這里的用法類似于np.where(isnull(a),b,a)

        數(shù)據(jù)重塑和軸向旋轉(zhuǎn)

        這個(gè)內(nèi)容我們?cè)谏弦黄猵andas文章有提到過。數(shù)據(jù)重塑主要使用reshape函數(shù),旋轉(zhuǎn)主要使用unstack和stack兩個(gè)函數(shù)。

        data=pd.DataFrame(np.arange(12).reshape(3,4),
         columns=['a','b','c','d'],
         index=['wang','li','zhang'])
        print(data)

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        print(data.unstack())

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        數(shù)據(jù)轉(zhuǎn)換

        刪除重復(fù)行數(shù)據(jù)

        data=pd.DataFrame({'a':[1,3,3,4],
         'b':[1,3,3,5]})
        print(data)

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        print(data.duplicated())

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        可以看出第三行是重復(fù)第二行的數(shù)據(jù)所以,顯示結(jié)果為True

        另外用drop_duplicates方法可以去除重復(fù)行

        print(data.drop_duplicates())

        結(jié)果為:
        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        替換值

        除了使用我們上一篇文章中提到的fillna的方法外,還可以用replace方法,而且更簡(jiǎn)單快捷

        data=pd.DataFrame({'a':[1,3,3,4],
         'b':[1,3,3,5]})
        print(data.replace(1,2))

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        多個(gè)數(shù)據(jù)一起換

        print(data.replace([1,4],np.nan))

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

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

        data=[11,15,18,20,25,26,27,24]
        bins=[15,20,25]
        print(data)
        print(pd.cut(data,bins))

        結(jié)果為:
        [11, 15, 18, 20, 25, 26, 27, 24][NaN, NaN, (15, 20], (15, 20], (20, 25], NaN, NaN, (20, 25]]
        Categories (2, object): [(15, 20] < (20, 25]]

        可以看出分段后的結(jié)果,不在分段內(nèi)的數(shù)據(jù)顯示為na值,其他則顯示數(shù)據(jù)所在的分段。

        print(pd.cut(data,bins).labels)

        結(jié)果為:

        [-1 -1 0 0 1 -1 -1 1]

        顯示所在分段排序標(biāo)簽

        print(pd.cut(data,bins).levels)

        結(jié)果為:

        Index([‘(15, 20]', ‘(20, 25]'], dtype='object')

        顯示所以分段標(biāo)簽

        print(value_counts(pd.cut(data,bins)))

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        顯示每個(gè)分段值得個(gè)數(shù)

        此外還有一個(gè)qcut的函數(shù)可以對(duì)數(shù)據(jù)進(jìn)行4分位切割,用法和cut類似。

        排列和采樣

        我們知道排序的方法有好幾個(gè),比如sort,order,rank等函數(shù)都能對(duì)數(shù)據(jù)進(jìn)行排序
        現(xiàn)在要說的這個(gè)是對(duì)數(shù)據(jù)進(jìn)行隨機(jī)排序(permutation)

        data=np.random.permutation(5)
        print(data)

        結(jié)果為:

        [1 0 4 2 3]

        這里的peemutation函數(shù)對(duì)0-4的數(shù)據(jù)進(jìn)行隨機(jī)排序的結(jié)果。
        也可以對(duì)數(shù)據(jù)進(jìn)行采樣

        df=pd.DataFrame(np.arange(12).reshape(4,3))
        samp=np.random.permutation(3)
        print(df)

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        print(samp)

        結(jié)果為:
        [1 0 2]

        print(df.take(samp))

        結(jié)果為:

        python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        這里使用take的結(jié)果是,按照samp的順序從df中提取樣本。

        更多python 數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        python數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

        python數(shù)據(jù)清洗之?dāng)?shù)據(jù)合并、轉(zhuǎn)換、過濾、排序:前面我們用pandas做了一些基本的操作,接下來進(jìn)一步了解數(shù)據(jù)的操作,數(shù)據(jù)清洗一直是數(shù)據(jù)分析中極為重要的一個(gè)環(huán)節(jié)。數(shù)據(jù)合并在pandas中可以通過merge對(duì)數(shù)據(jù)進(jìn)行合并操作。import numpy as np import pandas as pd data1 = pd.DataFr
        推薦度:
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 毛片基地免费观看| 免费观看一区二区三区| 日韩内射激情视频在线播放免费| 韩国欧洲一级毛片免费| 亚洲一区二区三区无码国产| 国产麻豆一精品一AV一免费| 亚洲男人在线无码视频| 亚洲av第一网站久章草| 成人超污免费网站在线看| 亚洲人成www在线播放| 国产免费丝袜调教视频| 久久综合亚洲色一区二区三区 | 1000部拍拍拍18勿入免费凤凰福利| 97热久久免费频精品99| 亚洲综合激情九月婷婷| 95免费观看体验区视频| 亚洲首页在线观看| www视频在线观看免费| 亚洲国产精品张柏芝在线观看 | 亚洲自偷自偷在线成人网站传媒 | 国内自产拍自a免费毛片| 亚洲国产第一页www| 91免费福利精品国产| 精品亚洲A∨无码一区二区三区| 99视频有精品视频免费观看| 4480yy私人影院亚洲| 国产a视频精品免费观看| 亚洲偷偷自拍高清| 日日夜夜精品免费视频| 美女啪啪网站又黄又免费| 亚洲精品乱码久久久久久不卡| a在线视频免费观看在线视频三区| 在线日韩日本国产亚洲| 久久久久成人精品免费播放动漫| 老司机亚洲精品影院| 国产麻豆视频免费观看| 亚洲AV网一区二区三区| 亚洲精品无码不卡在线播HE| 精品无码人妻一区二区免费蜜桃| 亚洲国产精品无码中文lv | 女性无套免费网站在线看|