如何提供现有DataFrame的可复制副本?

时间:2018-09-19 19:48:21

标签: python python-3.x pandas dataframe jupyter-notebook

2018-09-18_reproducible_dataframe.ipynb

这似乎是一个显而易见的问题。但是,许多询问有关熊猫的问题的用户都是新手,没有经验。提出问题的关键要素是How to create a Minimal, Complete, and Verifiable example,它解释了什么,但并没有真正解释如何。

例如,作为一个提出问题的人,我可能必须遵循以下条件:

import pandas as pd

df = pd.read_csv('flavors_of_cacao.csv')

后跟其他一些代码,该代码会产生错误或无法产生预期的结果

提出有关堆栈溢出的问题时应该提供的东西。

  • 一个写得很好的连贯问题
  • 产生错误的代码
  • 错误堆栈
  • 可能是某些代码的预期结果
  • 易于使用的数据格式

2 个答案:

答案 0 :(得分:3)

从pandas DataFrame提供示例数据的最快方法

有多种方法可以回答这个问题。但是,此答案并不意味着提供详尽的解决方案。它提供了最简单的方法。出于好奇,Stack Overflow还提供了其他更详细的解决方案。

  1. 提供指向可共享数据集的链接(可能在GitHub上或Google上的共享文件)。如果数据集很大且目标是优化某些方法,则这特别有用。缺点是数据将来可能不再可用,从而降低了发布的好处。
  2. 提供df.head(10).to_clipboard(sep=',', index=False)
  3. 的输出

代码

import pandas as pd

df = pd.read_csv('flavors_of_cacao.csv')

提供pandas.DataFrame.to_clipboard

的输出
df.head(10).to_clipboard(sep=',', index=False)

如果您有一个多索引DataFrame或0 ... n以外的索引,请使用index=True并在问题中提供有关哪个列是索引的注释。 / strong>

注意:执行上一行代码时,将不会显示任何输出。代码的结果现在位于剪贴板中。

将剪贴板粘贴到堆栈溢出

"Company 
(Maker-if known)","Specific Bean Origin
or Bar Name",REF,"Review
Date","Cocoa
Percent","Company
Location",Rating,"Bean
Type","Broad Bean
Origin"
A. Morin,Agua Grande,1876,2016,63%,France,3.75, ,Sao Tome
A. Morin,Kpime,1676,2015,70%,France,2.75, ,Togo
A. Morin,Atsane,1676,2015,70%,France,3.0, ,Togo
A. Morin,Akata,1680,2015,70%,France,3.5, ,Togo
A. Morin,Quilla,1704,2015,70%,France,3.5, ,Peru
A. Morin,Carenero,1315,2014,70%,France,2.75,Criollo,Venezuela
A. Morin,Cuba,1315,2014,70%,France,3.5, ,Cuba
A. Morin,Sur del Lago,1315,2014,70%,France,3.5,Criollo,Venezuela
A. Morin,Puerto Cabello,1319,2014,70%,France,3.75,Criollo,Venezuela
A. Morin,Pablino,1319,2014,70%,France,4.0, ,Peru

,可以将其复制到剪贴板,然后跟随:

pd.read_clipboard(sep=',')

答案 1 :(得分:1)

如果您执行类似print(df.head(20))的操作并将输出粘贴为代码格式,那么我们可以使用pd.read_clipboard()将数据加载到数据帧中。这种方法适用于在pandas标签下发布的绝大多数问题,但对于涉及multiindex

的问题却惨败