有没有办法将 pandas 数据框打印为可复制代码?

Sky*_*ker 4 python pandas

我时不时地需要调试代码并到达为新测试用例找到有效的“oracle”或“fixture”的程度,然后需要将数据帧打印到控制台并将其转换为数据帧初始化代码。有没有办法将数据框打印成可复制的代码?我知道我可以将其转储到一个文件中,然后使用该文件作为测试用例的输入,对于很长的数据帧来说应该是这种情况,但对于小的数据帧来说,能够将它们复制粘贴到一个测试用例中会很好。测试套件...

Dan*_*ejo 5

如果您寻求的是可用作有效 Python 代码的 DataFrame 表示,建议您使用to_dict,如下所示:

import pandas as pd

df = pd.DataFrame(data=list(enumerate(['Dan Cat', 'Dave Dog', 'Diego Cangrejo'], 1)), columns=['id', 'name'])
print(df.to_dict())
Run Code Online (Sandbox Code Playgroud)

输出

{'id': {0: 1, 1: 2, 2: 3}, 'name': {0: 'Dan Cat', 1: 'Dave Dog', 2: 'Diego Cangrejo'}}
Run Code Online (Sandbox Code Playgroud)

上述状态的输出是有效的Python字典文字,因此您可以直接在代码中复制它:

import pandas as pd

data = {'id': {0: 1, 1: 2, 2: 3}, 'name': {0: 'Dan Cat', 1: 'Dave Dog', 2: 'Diego Cangrejo'}}
print(pd.DataFrame.from_dict(data))
Run Code Online (Sandbox Code Playgroud)

输出

   id            name
0   1         Dan Cat
1   2        Dave Dog
2   3  Diego Cangrejo
Run Code Online (Sandbox Code Playgroud)