最近我经常发现自己在Pandas
中提出依赖于我正在使用的数据的问题,到目前为止我需要很长时间才能创建一个与我的数据相似的数据框(可重现的数据框架) )以便SO用户可以轻松地将其复制到他们的机器上。
我更愿意找到一种方便的方式,这样我就可以在我的问题中打印我的小DF,而其他用户可以轻松地收集它,从而以最小的努力创建它。
在R
中,我习惯在控制台的dput
函数中打印一小部分数据,然后在我的问题中打印输出(示例):
Getting the error "level sets of factors are different" when running a for loop
我注意到了这个解释,但我不认为它适合打印其他SO用户的数据样本: Python's equivalent for R's dput() function
Pandas中是否有相同的方法可以做到这一点?
提前致谢!
答案 0 :(得分:7)
如果您可以使用二进制数据,则可以使用pickle
库。它通常允许序列化和反序列化任意对象(条件是它们提供了类定义,如果安装了pandas,则对于数据帧也是如此)。
如果您需要人类可读的格式,您可以使用df_dict = df.to_dict()
从数据框创建Python字典,并打印此字典(查看它并可能复制粘贴),或将其转储为JSON串。
如果要将字典转换回pandas,请使用df = pd.DataFrame.from_dict(df_dict)
。
解码和编码的最小例子:
import pandas as pd
df = pd.DataFrame.from_dict({'a': {0: 1, 1: 2}, 'b': {0: 3, 1: 3}})
print(df.to_dict())
会生成{'a': {0: 1, 1: 2}, 'b': {0: 3, 1: 3}}
可复制对象。