<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无码片一区二区三区| 成人毛片免费观看| 亚洲综合一区无码精品| 成年女人18级毛片毛片免费观看| 亚洲国产成人资源在线软件| 两个人的视频高清在线观看免费| 亚洲宅男天堂a在线| 中国在线观看免费高清完整版| 亚洲综合一区无码精品| 青青草国产免费久久久下载| 国产亚洲精品美女| 亚洲视频在线免费| 好紧我太爽了视频免费国产| 亚洲短视频男人的影院| 国产精品视频免费观看| 亚洲日本VA午夜在线影院| 亚洲AV成人噜噜无码网站| 免费阿v网站在线观看g| 中文字幕精品三区无码亚洲| 四虎永久免费地址在线网站 | 尤物永久免费AV无码网站| 国产精品亚洲精品爽爽| 亚洲日韩涩涩成人午夜私人影院| 久久WWW免费人成—看片| 久久综合图区亚洲综合图区| 亚洲网站免费观看| 国产l精品国产亚洲区在线观看 | 97性无码区免费| 国产精品久久久久久亚洲影视| 亚洲日本中文字幕天堂网| 性色午夜视频免费男人的天堂| 亚洲Av高清一区二区三区| 亚洲精品99久久久久中文字幕| 毛片在线全部免费观看| 亚洲精品无码久久久久APP| 国产亚洲色视频在线| 毛片a级毛片免费播放100| 国产黄色免费观看|