¿Cómo proporciono una copia reproducible de mi DataFrame existente?

2018-09-18_reproducible_dataframe.ipynb

Esto puede parecer una pregunta obvia. Sin embargo, muchos de los usuarios que hacen preguntas sobre Pandas son nuevos e inexpertos. Un componente crítico de hacer una pregunta es Cómo crear un ejemplo Mínimo, Completo y Verificable , que explica qué, pero no realmente cómo.

Por ejemplo, como persona que hace una pregunta, es posible que tenga que seguir:

import pandas as pd df = pd.read_csv('flavors_of_cocoa.csv') 

seguido de algún otro código, que produce un error o no produce el resultado deseado

Cosas que deben proporcionarse al hacer una pregunta en Stack Overflow.

  • Una pregunta coherente bien escrita.
  • El código que produce el error.
  • La stack de errores
  • Potencialmente, el resultado esperado de algún código.
  • Los datos, en una forma fácilmente utilizable.

El método más rápido para proporcionar datos de muestra de un dataframe de pandas

Hay más de una forma de responder esta pregunta. Sin embargo, esta respuesta no pretende proporcionar una solución exhaustiva. Proporciona el método más simple posible. Para los curiosos, hay otras soluciones más detalladas proporcionadas en Stack Overflow.

  1. Proporcione un enlace a un conjunto de datos que se pueda compartir (tal vez en GitHub o un archivo compartido en Google). Esto es particularmente útil si se trata de un conjunto de datos grande y el objective es optimizar algún método. El inconveniente es que los datos ya no estarán disponibles en el futuro, lo que reduce el beneficio de la publicación.
  2. Proporcione la salida de df.head(10).to_clipboard(sep=',', index=False)

Código

 import pandas as pd df = pd.read_csv('flavors_of_cocoa.csv') 

Proporcionar la salida de pandas.DataFrame.to_clipboard

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

Si tiene un DataFrame de índice múltiple o un índice distinto de 0 … n, use index=True y escriba una nota en su pregunta sobre qué columnas son el índice.

Nota: cuando se ejecuta la línea de código anterior, no aparecerá ninguna salida. El resultado del código está ahora en el portapapeles.

pegar el portapapeles para desbordamiento de stack

 "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 

que puede ser copiado al portapapeles y seguido por:

 pd.read_clipboard(sep=',') 

Si hace algo como print(df.head(20)) y pegar la salida en formato de código, entonces podemos usar pd.read_clipboard() para cargar los datos en un dataframe. Este enfoque funciona para la gran mayoría de las preguntas publicadas bajo la etiqueta de pandas pero falla miserablemente para preguntas relacionadas con el multiindex múltiple.