ユーザ入力に依存して、パンダのピボットテーブルを生成します。 1つの特殊なケースがあります。カラムには1つの属性しかありません。これは、データフレームの代わりにピボットテーブルの結果としてタイプのシリーズのデータオブジェクトを生成するので、私は別の方法(IE。)にアクセスする必要があります。いくつかの方法があります、列の属性の数とは無関係に同じ結果を得る方法はありますか?パンダ1行ピボットテーブルはデータフレームの代わりにセリを返します
import pandas as pd
data = {'attr1': {0: 2, 1: 1, 2: 14}, 'attr2': {0: 0, 1: 1, 2: 2},'metric1': {0: 3834557.25999999998, 1: 13251194.440, 2: 2868778.53}, 'metric2': {0: 7.2, 1: 4.0, 2: 7.5}}
df = pd.DataFrame(data)
tab1 = df.pivot_table(index=[], columns=["attr1"], values=['metric1', 'metric2'])
if isinstance(tab1, pd.Series):
tab1 = pd.DataFrame(tab1).T
print tab1.index
print tab1.columns
print tab1
tab2 = df.pivot_table(index=[], columns=["attr1",'attr2'], values=['metric1','metric2'])
if isinstance(tab2, pd.Series):
tab2 = pd.DataFrame(tab2).T
print tab2.index
print tab2.columns
print tab2
私はその新しい方法に気付かなかった! +1 – MaxU
ありがとう!実際には、私はあなたの答えが好きです。しばらくの間アップグレードしない組織もたくさんあります。 –
シリーズにはしばらくの間、 'to_frame'メソッドがありました。 –