to_excel 関数を使用して、groupby を使用して作成したデータフレームを Excel ファイルに保存しようとしています。ipython ノートブックでデータをプレビューすると、希望どおりに表示されます。groupby コードは単純です。
grouped = teach_freq.groupby(['Focal','follow','Activity'])
grouped.head()
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 1797 entries, (10107.0, 192.0, ff, 25220.0) to (53704.0, 142.0, ss.rn, 18823.0)
Data columns (total 16 columns):
Epoch 1790 non-null values
follow 1797 non-null values
T_Opp 1797 non-null values
T_Dir 1797 non-null values
T_Enh 1797 non-null values
T_SocTol 1797 non-null values
...など dtypes: float64(3)、int64(6)、object(7)
to_excel コードも単純です。
grouped.to_excel('filename.xls', sheet_name='sheet1')
この最後のコードを実行すると、数行のデータのみが Excel ファイルに作成されます (約 1800 行のデータのうち約 3 行です。ipython ノートブックのデータの別の部分のプレビューは次のようになります。
Focal follow Activity
10107 192 ff None
10212 187 rn.ss None
194 hc None
pa None
10213 166 hr.hg None
pa None
sr.hg None
sr.hl None
これらのデータは、グループ化した 3 つの列と、データフレームに存在しない None の列のみのように見えます。ファイルには、正しくフォーマットされた 6 行のデータ、見出しなどがあります。Finder で書き込まれているファイルに注目すると、コードの to_excel 行に応じてサイズが上下に変化します。これは、一度に小さなデータのチャンクをファイルに書き込んでいることを示唆していると思いますが、それぞれを次で書きます。
最終的なファイル サイズは小さい (6KB) ですが、コードの実行中のいくつかの時点でサイズが大きくなります (最大 32KB)。
最後に、ipython データに表示されるデータの最後の数行は、Excel ファイルに正常に書き込まれた行の直前の行であるように見えます。これは、何らかの理由で、ipython を過ぎたデータ行のみを保存していることを示唆しています。ノートブックのプレビュー制限。なぜ誰もがそれを機能として欲しがるのか、なぜこのように機能するのか、私にはわかりません.
これは奇妙です。誰かがなぜこれが起こっているのか説明してくれることを願っています。groupby と to_excel のドキュメントを見て、同様の問題を抱えている人を探しましたが、見つかりませんでした。グループ化されていないこの同じデータを持つデータフレームにto_excelを使用しましたが、同様の問題はありませんでした。ノートブック内で出力を取得している理由については、実際には明確ではありません.to_excelを使用した他の回では、出力はExcelファイル自体にしか表示されません。