2014-04-28 3 views
2

우리는 다음과 같은 데이터가 있다고 가정하자 열의 각 레이블에서 열 B의 합계를 찾습니다팬더 Dataframe는

... col1 col2 col3 
0  A  1  info 
1  A  2  other 
2  B  3  blabla 

내가 (열 1) 중복 항목을 찾기 위해 파이썬 팬더를 사용하려면 및 추가

l = [('A',1), ('A',2), ('B',3)] 
d = {} 
for i in l: 
    if(i[0] not in d.keys()): 
     d[i[0]]=i[1] 
    else: 
     d[i[0]]=d[i[0]]+i[1] 
print(d) 

그래서 결과는 다음과 같습니다 :

파이썬에서 2 열

에 따라 최대 나는 다음과 같은 일을 할 것

{'A': 3, 'B': 3} 

팬더를 사용하여 동일한 작업을 수행하는 쉬운 방법이 있습니까?

답변

6

사용 DataFrame.groupby().sum()이 제대로 작동하지만, 내가 열 1을 유지하려는 경우입니다

In [1]: import pandas 

In [2]: df = pandas.DataFrame({"col1":["A", "A", "B"], "col2":[1,2,3]}) 

In [3]: df.groupby("col1").sum() 
Out[3]: 
     col2 
col1  
A  3 
B  3 

In [4]: df.groupby("col1").sum().reset_index() 
Out[4]: 
    col1 col2 
0 A  3 
1 B  3 

[2 rows x 2 columns] 
+0

? 이 경우 열 1의 속성은 색인처럼 사용됩니다. – fitziano

+1

답변을 업데이트했습니다. – Noah