pandas去除重復(fù)列的實(shí)現(xiàn)方法
數(shù)據(jù)準(zhǔn)備
假設(shè)我們目前有兩個(gè)數(shù)據(jù)表:
① 一個(gè)數(shù)據(jù)表是關(guān)于三個(gè)人他們的id以及其他的幾列屬性信息
import pandas as pd import numpy as np data = pd.DataFrame(np.random.randint(low=1,high=20,size=(3,4))) data['id'] = range(1,4) # 輸出:其中,最左邊的0 1 2 為其索引
② 另外一個(gè)數(shù)據(jù)表是3個(gè)用戶的app操作日志信息,一個(gè)人會(huì)有多條app操作記錄
sample = pd.DataFrame(np.random.randint(low=1,high=9,size=(7,1)),columns=['hhh']) sample['id'] = [1,1,2,2,3,3,3] # 輸出:
問(wèn)題描述
① 首先我們需要統(tǒng)計(jì)每個(gè)用戶app操作記錄數(shù),比如上表可以看出用戶id為1的用戶有2條操作記錄,用戶id為3的用戶有3條操作記錄
s = sample.groupby('id').count() # 輸出:
② 此時(shí),S是一個(gè)以id為索引,count出來(lái)的記錄數(shù)為value的Series結(jié)構(gòu)。因?yàn)榭紤]到后面我們需要id列進(jìn)行merge,所以我們需要讓id列從索引列變成真實(shí)的一列。
s = s.reset_index() # 輸出:
③ 將S與最上的data表進(jìn)行merge,我們不想要看到重復(fù)的id列,甚至我們也可以將問(wèn)題延伸為S與data表不止是id列的重復(fù),還有好多條其他的列的重復(fù),那么如何保證將它們merge之后沒(méi)有重復(fù)列呢?
解決方案
第一想法是用 DataFrame.drop(‘列名') 或者用 del DataFrame[‘列名']
但是如果用該方法,會(huì)刪除掉所有的重復(fù)列,而達(dá)不到我們的要求。
辦法是: 參考StackOverflow解答
cols_to_use = s.columns.difference(data.columns) # pandas版本在0.15及之上的都可以用這種方法,該方法找出S和data表的不同列,然后再進(jìn)行merge pd.merge(data, s[cols_to_use], left_index=True, right_index=True, how='outer')
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python 根據(jù)時(shí)間來(lái)生成唯一的字符串方法
今天小編就為大家分享一篇python 根據(jù)時(shí)間來(lái)生成唯一的字符串方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-0110行Python代碼實(shí)現(xiàn)Web自動(dòng)化管控的示例代碼
這篇文章主要介紹了10行Python代碼實(shí)現(xiàn)Web自動(dòng)化管控的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08python?pip?install總是報(bào)錯(cuò)情況分析及解決辦法
這篇文章主要給大家介紹了關(guān)于python?pip?install總是報(bào)錯(cuò)情況分析及解決辦法,安裝包時(shí)經(jīng)常遇到報(bào)錯(cuò),這里提供兩種方式解決,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10Python中Scrapy+adbapi提高數(shù)據(jù)庫(kù)寫入效率實(shí)現(xiàn)
本文主要介紹了Python中Scrapy+adbapi提高數(shù)據(jù)庫(kù)寫入效率實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10Python OpenCV招商銀行信用卡卡號(hào)識(shí)別的方法
這篇文章主要介紹了Python OpenCV招商銀行信用卡卡號(hào)識(shí)別的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03python實(shí)現(xiàn)手機(jī)號(hào)歸屬地查詢功能
手機(jī)上突然收到了某銀行的短信提示,看了一下手機(jī)的位數(shù),正好是11位,我一想,這不就是標(biāo)準(zhǔn)的手機(jī)號(hào)碼嗎?于是想用python的庫(kù)實(shí)現(xiàn)查詢手機(jī)號(hào)碼歸屬地查詢自由,所以本文給大家介紹了如何用python實(shí)現(xiàn)手機(jī)號(hào)歸屬地查詢功能,需要的朋友可以參考下2024-03-03