Как мне предоставить воспроизводимую копию моего существующего DataFrame?

2018-09-18_reproducible_dataframe.ipynb

Это может показаться очевидным вопросом. Тем не менее, многие пользователи, задающие вопросы о пандах, новички и неопытны. Важным компонентом постановки вопроса является вопрос " Как создать минимальный, полный и проверяемый пример", который объясняет "что", а не "как".

Например, как человек, задающий вопрос, мне может потребоваться следующее:

import pandas as pd

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

сопровождаемый другим кодом, который выдает ошибку или не дает желаемого результата

Вещи, которые должны быть предоставлены, задавая вопрос о переполнении стека.

  • Хорошо написанный связный вопрос
  • Код, который выдает ошибку
  • Стек ошибок
  • Потенциально, ожидаемый результат некоторого кода
  • Данные в удобной для использования форме

2 ответа

Решение

Самый быстрый способ для предоставления образцов данных из панды DataFrame

Существует несколько способов ответить на этот вопрос. Однако этот ответ не предназначен для исчерпывающего решения. Это самый простой из возможных методов. Для любопытных есть и другие более подробные решения, представленные в Stack Overflow.

  1. Предоставьте ссылку на общий набор данных (возможно, на GitHub или на общий файл в Google). Это особенно полезно, если это большой набор данных и целью является оптимизация какого-либо метода. Недостатком является то, что в будущем данные могут быть недоступны, что снижает выгоду от публикации.
  2. Обеспечить вывод df.head(10).to_clipboard(sep=',', index=False)

Код

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 и укажите в своем вопросе, какие столбцы являются индексом.

Примечание: при выполнении предыдущей строки кода выходные данные не отображаются. Результат кода теперь в буфере обмена.

вставьте буфер обмена в стек переполнения

"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=',')

Если вы делаете что-то вроде print(df.head(20)) и вставьте вывод в формате кода, тогда мы можем использовать pd.read_clipboard() загрузить данные в информационный кадр. Этот подход работает для подавляющего большинства вопросов, размещенных в pandas помечает, но терпит неудачу с треском multiindex

Другие вопросы по тегам