2017-10-02 6 views
0

CSV 파일이 있고 날짜, 개수 및 서비스 열이 있습니다. 많은 날짜, 개수 및 서비스 열이 있지만 아래에 나와있는 예제입니다.팬더를 사용하여 CSV 파일에서 동일한 번호를 합산하는 방법

Number Count Service  Number Count service 
0  13 NO SERVICE  0  10 
1  14 tcpmux   1  10 
2   9 compressnet  2  14 

그래서 나는 같은 대답을 원하는 :

Number Total Count Service 
0   23   NO SERVICE 
1   24   tcpmux 
2   23   compressnet 

나는 팬더의 코드를 어떻게해야합니까

import pandas as pd 
df =pd.read_csv ("/Users/mani/Desktop/monthly report/geoip/2017-20dstipsum12.csv") 
hasil = df.groupby(['NUMBER']).sum() 
hasil.to_csv('gotttt.txt', sep='\t', encoding='utf-8') 
+0

중복 열 이름이있다? – jezrael

+0

@jezrael 네, 같은 칼럼 이름을 가진 많은 것들이 있습니다. 그러나 이것들은 2 가지 예입니다 – Angeline

+0

당신의 팬더 버전은 무엇입니까? 최신 버전의 pandas에서'read_csv'는'.1','.2'를 추가하여 열 이름을 복제하기 때문입니다. – jezrael

답변

0

Number 모든 데이터에 같은 경우 :

#sum all column Count 
df['Total Count'] = df['Count'].sum(axis=1) 
#select first and third column and join Total Count column 
df = df.iloc[:, [0,2]].join(df['Total Count']) 
print (df) 
    Number Total Count Total Service 
0  0   23  NO SERVICE 
1  1   24   tcpmux 
2  2   23  compressnet 

팬더의 최신 버전에서

read_csv에서 중복 제거 된 열 이름, 그래서 선택 열에 대한 filter 필요

print (df) 
    Number Count  Service Number.1 Count.1 Service.1 
0  0  13 NO SERVICE   0  10   
1  1  14  tcpmux   1  10   
2  2  9 compressnet   2  14 

df['Total Count'] = df.filter(like='Count').sum(axis=1) 

df = df[['Number','Total Count','Service']] 
print (df) 
    Number Total Count Total Service 
0  0   23  NO SERVICE 
1  1   24   tcpmux 
2  2   23  compressnet 
+0

이 오류가 발생했습니다 객체 유형 Angeline

+0

에 축 1이 없습니다. 중복 된 열 이름이 없으므로 두 번째 해결 방법이 필요합니다. 'print (df.columns.tolist())'를 반환하는 이유는 무엇입니까? – jezrael

+0

미안하지만 나는 팬더에 대해 잘 모르므로 이해할 수 없다. (df.clomns.tolist()) – Angeline