2016-07-22 18 views
1

私はnumpyサイズを使用してPandas DFを集計し、writer.saveを使用してExcelに結果をロードします。しかし、次のエラーが発生しています。NotImplementedError:MultiIndexでExcelとして書き込むことがまだ実装されていません。writer.save()を使ってPandasデータフレームをExcelに読み込み、インデックスエラーを取得する

私のデータは、このようなものになります。私の結果は以下のようになります

agt_id  unique_id 
abc123  ab12345 
abc123  cd23456 
abc123  de34567 
xyz987  ef45678 
xyz987  fg56789 

を:

agt_id  unique_id 
abc123  3 
xyz987  2 

これは私のコードの例である:私が持っている

df_agtvol = df_agt.groupby('agt_id').agg({'unique_id':[np.size]}) 
writer = pd.ExcelWriter(outfilepath, engine='xlsxwriter') 
df_agtvol.to_excel(writer, sheet_name='agt_vols') 

次のコードを使用してインデックスをリセットしようとしました:

df_agt_vol_final = df_agtvol.set_index([df_agtvol.index, 'agt_id'], inplace=True) 

いくつかの調査に基づいていますが、全く異なるエラーが発生しています。

私はPandasのデータフレームで作業するのが比較的新しいので、助けていただければ幸いです。

答えて

1

マルチインデックスは必要ありません。あなたが1つを得る理由はnp.sizeがリストに包まれているからです。

explicitly documentedではなく、Pandasは、リスト内のすべてを'unique_id'のサブインデックスとして解釈します。このユースケースは、リンクされたドキュメントの「関数の名前のネストされたdict」に該当します。

だから

df_agtvol = df_agt.groupby('agt_id').agg({'unique_id':[np.size]}) 

df_agtvol = df_agt.groupby('agt_id').agg({'unique_id': np.size}) 

これはまだ非常に複雑であり、あなたがcountメソッドの呼び出しと同じ結果を得ることができであるべき。

df_agtvol = df_agt.groupby('agt_id').count() 
+0

ありがとう!!これは完璧です。初心者のために、私は時には必要以上に複雑なものにする。 – ChrisMcK

+0

:)うれしい! – Alex

関連する問題