<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
        主站蜘蛛池模板: 国产aⅴ无码专区亚洲av麻豆| 真人做A免费观看| 亚洲精品岛国片在线观看| 亚洲偷自拍另类图片二区| 免费观看美女用震蛋喷水的视频 | 精品国产日韩亚洲一区| 免费国产黄网站在线观看动图| 日本最新免费不卡二区在线| 深夜特黄a级毛片免费播放| 毛片免费在线观看网址| 免费无码成人AV在线播放不卡 | 国产区图片区小说区亚洲区| 免费看国产成年无码AV片| 亚洲区视频在线观看| 在人线av无码免费高潮喷水| 中文字幕乱码亚洲精品一区| 免费无码又爽又刺激高潮 | 国产国产人免费视频成69大陆| 青娱乐在线视频免费观看| 亚洲无线一二三四区手机| 中文精品人人永久免费| 亚洲成a人片7777| 在线观看免费成人| 人人公开免费超级碰碰碰视频 | www.999精品视频观看免费| 苍井空亚洲精品AA片在线播放| 亚洲Av无码国产情品久久 | 国产精品亚洲二区在线观看| 成年免费a级毛片免费看无码| 亚洲精品成人网站在线播放 | 在线观看永久免费视频网站| 97国免费在线视频| 亚洲乱码一二三四区麻豆| 免费人成年激情视频在线观看| 国产免费一区二区视频| 亚洲日韩精品国产3区| 亚洲国产无套无码av电影| 一二三四免费观看在线视频中文版 | 鲁大师在线影院免费观看| 亚洲乱妇熟女爽到高潮的片 | 成年大片免费视频|