2014-02-05 3 views
0

필자는 피벗 맨 위에 총 행을 추가하려고합니다. 그러나 연결을 시도 할 때 오류가 발생했습니다. I처럼 그것의 전체가 여기에 출력pandas concat is not possible 오류가 발생했습니다.

[1 rows x 7 columns] 
>>> pc = [totals_frame, table] 
>>> concat(pc) 

가입

>>> totals_frame 
Vcountry  1 2 3 4 5 6 7 
totalCount 204 87 151 142 135 99 203 

피벗 테이블 그게

>>> table 
      Weight       
Vcountry  1 2 3 4 5 6 7 
V20001         
1    86 NaN NaN NaN NaN NaN 92 
2    41 NaN 71 40 50 51 49 
3   NaN 61 60 61 60 25 62 
4    51 NaN NaN NaN NaN NaN NaN 
5    26 26 20 41 25 23 NaN 

[5 rows x 7 columns] 

: 여기

reindex_items 
    copy_if_needed=True) 
    File "C:\Python27\lib\site-packages\pandas\core\index.py", line 2887, in reindex 
    target = MultiIndex.from_tuples(target) 
    File "C:\Python27\lib\site-packages\pandas\core\index.py", line 2486, in from_tuples 
    arrays = list(lib.tuples_to_object_array(tuples).T) 
    File "inference.pyx", line 915, in pandas.lib.tuples_to_object_array (pandas\lib.c:43656) 
TypeError: object of type 'long' has no len() 
+0

합니까를'? 'table = table [ 'Weight']'시도한 다음 연결을 수행하십시오. – TomAugspurger

답변

0

는 가능한 방법 대신 pd.concat 사용 012의 사용. 이 할 수있는 인덱스와 주변 하구의 비트,하지만 여전히 아주 깔끔한 나는 생각한다

# Just setting up the dataframe: 
df = pd.DataFrame({'country':['A','A','A','B','B','B'], 
        'weight':[1,2,3,1,2,3], 
        'value':[10,20,30,15,25,35]}) 
df = df.set_index(['country','weight']).unstack('weight') 

# A bit of messing about to get the index right: 
index = df.index.values.tolist() 
index.append('Totals') 

# Here's where the magic happens: 
df = df.append(df.sum(), ignore_index=True) 
df.index = index 

주는 : 해당 컬럼에 대한`MultiIndex`이 table`

 value   
weight  1 2 3 
A   10 20 30 
B   15 25 35 
Totals  25 45 65 
관련 문제