2017-12-21 19 views
2

그래서이 팬더 DataFrame은 5 개의 열과 100,000 개의 행을가집니다. V1, V2, V3 및 V5의 값이 정확히 같은 경우하나의 열을 제외한 모든 팬더 DataFrame에서 관측치를 병합하는 방법은 무엇입니까?

V1  V2   V3   V4 V5 
0 2014 Alfa Romeo 159   1 157 
1 2014 Alfa Romeo GIULIETTA 1 119 
2 2014 Alfa Romeo GIULIETTA 3 119 

내가하고 싶은 것은 열 V4의 값을 요약하는 것입니다 : 여기에 예입니다.

V1  V2   V3   V4 V5 
0 2014 Alfa Romeo 159   1 157 
1 2014 Alfa Romeo GIULIETTA 4 119 

은 처음에는 GROUPBY 일을 할 것이라고 생각하지만, 내가

df.groupby(['V1', V2','V3', 'V5' ]).sum() 

을했을 때 나는 V3, 예를 들어, 나는 색상의 10 개 가지 유형을 가지고 있어야 열에있는 정보의 일부를 잃었 하지만 지금은 3 명 밖에 없습니다. 어떻게 해결할 수 있습니까?

+0

'V3 열의 일부 정보가 손실되었습니다. '당신이 정교 할 수 있습니까? –

+0

V4.sum(). reset_index(). reindex (columns = df.columns)'당신을 위해 일하는'df.groupby ([ 'V1', 'V2', 'V3', 'V5'])? –

+0

V3 열의 정보 일부를 잃어 버렸습니까? - cᴏʟᴅsᴘᴇᴇᴅ 예. XC60 V60 V40 XC70 S60 S80 V70 V40 크로스 컨트리 (13) XC90 10 V60 하이브리드 1 내가 DF를 한 후 : 내 데이터베이스에서 나는 볼보 (V3 열) 10 종류의 같은있다. groupby ([ 'V1', 'V2', 'V3', 'V5']). agg ([ "sum"]) V70, XC60, XC70, XC90 만 표시됩니다. 팬더에 버그가 있습니까? 어떻게 생각해? – MikolajM

답변

3

'V1', 'V2', 'V3'또는 'V5'열의 누락 된 데이터를 다루고 있으며이 데이터가 groupby 's에서 누락 된 것으로 의심됩니다.

df.fillna("Missing").groupby(['V1','V2','V3','V5']).V4.sum() 

예 :

인쇄 '블랙'을 누락 (DF)

 V1   V2   V3 V4 V5 
0 2014.0 Alfa Romeo  159 1 157 
1 2014.0 Alfa Romeo GIULIETTA 1 119 
2 2014.0 Alfa Romeo GIULIETTA 3 119 
3  NaN Alfa Romeo  Black 4 119 

df.groupby(['V1','V2','V3','V5']).V4.sum() 

:

V1  V2   V3   V5 
2014.0 Alfa Romeo 159  157 1 
        GIULIETTA 119 4 
Name: V4, dtype: int64 
SO Post

해결 방법을 참조 fillna()를 사용하는 것입니다

filln 사용 a() :

df.fillna("Missing").groupby(['V1','V2','V3','V5']).V4.sum() 

V1  V2   V3   V5 
2014.0 Alfa Romeo 159  157 1 
        GIULIETTA 119 4 
Missing Alfa Romeo Black  119 4 
Name: V4, dtype: int64