我正在尝试使用 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 文件本身中看到输出。