2015-09-27 32 views
0
print a.head() 
     SubjectID form_name feature_name feature_value feature_delta 
0   533 Demographic  Gender    F   0.0 
1   533 Demographic   Age   65   0.0 
2   533 Demographic   Race   White   0.0 

這個支點,以SubjectID爲指標的工作原理:大熊貓支點賦予「一個數據幀的真值不明確」

print a.pivot(index='SubjectID', columns='feature_name', values='feature_value').head() 
feature_name Age Gender Race 
SubjectID      
100256  53  M White 
100626  58  M White 
100806  66  M White 

只有用[SubjectID]爲指標沒有按同樣的事情't:

print a.pivot(index=['SubjectID'], columns='feature_name', values='feature_value').head() 
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 

任何想法?

+0

'a.pivot_table(指數= [ 'SubjectID'],列= 'FEATURE_NAME',值='feature_value')'應該爲你工作。 –

回答

1

函數pivot不支持多列和索引,我認爲它還沒有實現。
Issue No. 8160source1

但我的誤差是不同的:

a.pivot(index=['SubjectID'], columns='feature_name', values='feature_value').head() 

ValueError: Wrong number of items passed 3, placement implies 1

但:

print a.pivot(index='SubjectID', columns=['feature_name'], values='feature_value').head() 

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

+0

什麼是您的熊貓版本?我的0.16.2 np19py27_0(使用蟒蛇) – ihadanny

+0

很酷。所以我認爲一個體面的多列解決方法是這樣的:'a.loc [:,'subj_time'] = a.SubjectID +「_」+ a.feature_delta'然後'a.pivot(index ='subj_time',columns ='feature_name',values ='feature_value')。head())' – ihadanny