使用to_clipboard()提供DataFrame的可复制副本

Tre*_*ney 4 python dataframe python-3.x pandas jupyter-notebook

2018-09-18_reproducible_dataframe.ipynb

这被标记为重复项,但是,其他问题和答案未涵盖to_clipboard,而该问题专门涵盖.to_clipboard且更加简洁。

这似乎是一个显而易见的问题。但是,许多询问有关熊猫的问题的用户都是新手,没有经验。提出问题的关键要素是如何创建最小,完整和可验证的示例,该示例解释“什么”和“为什么”,但不解释“如何”。

例如,作为OP,我可能具有以下数据框:

  • 对于此示例,我创建了综合数据,这是创建可重现数据集的一种选择,但不在此问题范围内。
    • 考虑一下这一点,就好像您已经加载了一个文件,并且只需要共享一部分即可重现该错误。
import pandas as pd
import numpy as np

np.random.seed(365)
data = {'a': [np.random.randint(10) for _ in range(15)],
        'b': [np.random.randint(10) for _ in range(15)],
        'date': pd.bdate_range(pd.datetime.today(), periods=15).tolist()}

df = pd.DataFrame(data)

    a  b       date
0   2  0 2019-11-06
1   4  8 2019-11-07
2   1  4 2019-11-08
3   5  3 2019-11-11
4   2  2 2019-11-12
5   2  6 2019-11-13
6   9  2 2019-11-14
7   8  6 2019-11-15
8   4  8 2019-11-18
9   0  9 2019-11-19
10  3  6 2019-11-20
11  3  1 2019-11-21
12  7  6 2019-11-22
13  7  5 2019-11-25
14  7  7 2019-11-26
Run Code Online (Sandbox Code Playgroud)

数据框后可能跟随一些其他代码,这些代码会产生错误或无法产生预期的结果

在堆栈溢出问题上应提供的内容。

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

Tre*_*ney 6

从pandas DataFrame提供样本数据的最快方法

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

  1. 提供指向可共享数据集的链接(可能在GitHub上或Google上的共享文件)。如果数据集很大且目标是优化某些方法,则这特别有用。缺点是数据将来可能不再可用,这降低了发布的好处。
    • 必须在问题中提供数据,但可以附带指向更广泛的数据集的链接。
    • 不要仅发布数据的链接或图像。
  2. 提供输出 df.head(10).to_clipboard(sep=',', index=False)

码:

提供输出 pandas.DataFrame.to_clipboard

df.head(10).to_clipboard(sep=',', index=False)
Run Code Online (Sandbox Code Playgroud)
  • 如果您有一个多索引DataFrame或0 ... n以外的索引,index=True请在问题中使用并提供注释,以了解哪些列是索引。
  • 注意:执行上一行代码时,将不会显示任何输出。代码的结果现在在剪贴板中。
  • 将剪贴板粘贴到code block您的堆栈溢出问题中
a,b,date
2,0,2019-11-06
4,8,2019-11-07
1,4,2019-11-08
5,3,2019-11-11
2,2,2019-11-12
2,6,2019-11-13
9,2,2019-11-14
8,6,2019-11-15
4,8,2019-11-18
0,9,2019-11-19
Run Code Online (Sandbox Code Playgroud)
  • 可以由尝试回答您问题的人员将其复制到剪贴板,然后跟随:
df = pd.read_clipboard(sep=',')
Run Code Online (Sandbox Code Playgroud)