pandas 중복 열 제거 실현 방법
만약 에 우리 가 현재 두 개의 데이터 시트 가 있다 고 가정 하면:
① 하나의 데이터 시트 는 세 사람의 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
② 다른 데이터 시트 는 3 명의 사용자 의 app 작업 로그 정보 로 한 사람 이 여러 개의 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]
# :
문제 설명
① 먼저 저 희 는 모든 사용자 app 작업 기록 수 를 통계 해 야 합 니 다.예 를 들 어 상기 표 에서 사용자 id 가 1 인 사용 자 는 2 개의 조작 기록 이 있 고 사용자 id 가 3 인 사용 자 는 3 개의 조작 기록 이 있 음 을 알 수 있 습 니 다.
s = sample.groupby('id').count()
# :
② 이때 S 는 id 를 색인 으로 하고 count 된 기록 수 를 value 로 하 는 Series 구조 입 니 다.뒤에 id 열 이 merge 를 진행 해 야 한 다 는 것 을 고려 하여 id 열 을 색인 열 에서 실제 열 로 바 꿔 야 합 니 다.
s = s.reset_index()
# :
③ S 와 맨 위의 data 표를 merge 합 니 다.우 리 는 중복 되 는 id 열 을 보고 싶 지 않 습 니 다.심지어 우 리 는 문 제 를 S 와 data 표 는 id 열 의 중복 뿐만 아니 라 여러 개의 다른 열 의 중복 도 볼 수 있 습 니 다.그러면 merge 이후 에 중복 열 이 없 도록 어떻게 보장 합 니까?
해결 방안
첫 번 째 아 이 디 어 는 DataFrame.drop('열 명')을 사용 하거나 del DataFrame['열 명']을 사용 하 는 거 예요.
그러나 이 방법 을 사용 하면 모든 중복 열 을 삭제 하고 우리 의 요구 에 미 치지 못 한다.
방법 은:참조StackOverflow 해답
cols_to_use = s.columns.difference(data.columns) # pandas 0.15 , S data , merge
pd.merge(data, s[cols_to_use], left_index=True, right_index=True, how='outer')
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Pandas】DatetimeIndex란? no.29안녕하세요, 마유미입니다. Pandas에 대한 기사를 시리즈로 작성하고 있습니다. 이번은 제29회의 기사가 됩니다. 에서 Pandas의 시간에 대한 모듈에 대해 씁니다. 이번 기사에서는, 「DatetimeIndex」...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.