【问题标题】:How to embed data in an IPython Notebook?如何在 IPython Notebook 中嵌入数据?
【发布时间】:2014-02-27 15:51:47
【问题描述】:

在我看来,应该有一种方法可以从文件中读取数据,最好是到 Pandas DataFrame 中,并以使其成为笔记本的一部分的方式创建结果,例如,您可以正确存储数据在笔记本中而不需要外部文件?

这样您就可以发送整个示例(显然主要针对较小的数据集)。 这也将使在 SO 上做示例变得更容易..

有什么想法吗?即使通过剪切和粘贴,即数据框显示的输出?

【问题讨论】:

  • 对于中等大小的数据文件,您也可以托管它们(通过 github 或 dropbox 或其他方式),pandas 方法可以直接获取 url。

标签: python pandas ipython-notebook


【解决方案1】:

你可以把它放在一个 IPython 单元格中:

import pandas as pd
import io
content = '''\
<<PASTE DATA HERE>>
'''

df = pd.read_table(io.BytesIO(content), ...)

【讨论】:

  • 这在通过 IPython 笔记本粘贴 HTML 显示的 DataFrame 时非常有用。
【解决方案2】:

为他人详细说明: 下面的数据框数据,是从 IPython Notebook 中的 HTML rpr 简单剪切和粘贴的

import pandas as pd
import io
content2 = '''\
Units   lastqu  Uperchg lqperchg    fcast   errpercent  nfcast  fctperchg
2000-12-31   19391   NaN     NaN     NaN     NaN     NaN     NaN    NaN
2001-12-31   35068   5925    80.85   NaN     32838   -6.79   NaN    NaN
2002-12-31   39279   8063    12.01   36.08   39750   1.18    42449  NaN
2003-12-31   47517   9473    20.97   17.49   44309   -7.24   43784  NaN
2004-12-31   51439   11226   8.25    18.51   49976   -2.93   53594  NaN
2005-12-31   59674   11667   16.01   3.93    51402  -16.09   52907  NaN
2006-12-31   58664   14016   -1.69   20.13   58997   0.56    68491  NaN
2007-12-31   55698   13186   -5.06   -5.92   56313   1.09    55995  NaN
2008-12-31   42235   11343  -24.17  -13.98   50355   16.13   49805  NaN
2009-12-31   40478   7867    -4.16  -30.64   39117   -3.48   32809  NaN
2010-12-31   38722   8114    -4.34   3.14    39915   2.99    41304  NaN
2011-12-31   36965   8361    -4.54   3.04    40714   9.21    39497  NaN
2012-12-31   39132   8608    5.86    2.95    41512   5.73    37690  NaN
2013-12-31   43160   9016    10.29   4.74    42832   -0.77   40376  NaN
2014-12-31   NaN     9785    NaN     8.53    45318   NaN     45665   5
'''
df2 = pd.read_table(io.BytesIO(content2))
df2

生成一个完全可用的 DataFrame

【讨论】:

  • 必须添加以下内容以获取用于计算的整数#确保列是 int df2['Units']=df2['Units'][:-1].astype('int ') df2['lastqu']=df2['lastqu'][1:].astype('int')
猜你喜欢
  • 1970-01-01
  • 2018-04-23
  • 2015-05-30
  • 2015-09-24
  • 2016-11-18
  • 2016-02-24
  • 2016-12-27
  • 2012-10-23
  • 1970-01-01
相关资源
最近更新 更多