有没有办法获得数据帧的文本表示,我可以将其粘贴回到repl中,但这仍然看起来像表格一样好? Numpy repr
管理得非常好,我说的是:
> df
A B C
i
0 3 1 8
1 3 1 6
2 7 4 6
> df.to_python()
DataFrame(
columns=['i', 'A', 'B', 'C'],
data = [[ 0, 30, 1, 8],
[ 1, 3, 1, 6],
[ 2, 7, 4, 6]]
).set_index('i')
这似乎对堆栈溢出特别有用,但我经常发现自己需要共享小型数据帧,如果可能的话,我会喜欢它。
编辑:我知道to_csv
和to_dict
等等,我想要的是一种精确复制数据帧的方法,也可以作为表读取。似乎这可能没有当前的答案(虽然我很想看到熊猫添加它),但我想我可以让pd.read_clipboard('\s\s+')
为95%的用法工作。
答案 0 :(得分:1)
StringIO告诉python将字符串视为类似文件的对象,允许您使用下面的read_csv方法示例...
df = """ A B C
i
0 3 1 8
1 3 1 6
2 7 4 6"""#this is equivalent to str(df) or what happens when you use print df
df = pd.read_csv(StringIO.StringIO(df),sep="\s*",engine = 'python')
答案 1 :(得分:0)
df.to_dict()
会让你关闭,虽然你确实丢失了索引名称:
df.to_dict()
Out[5]: {'A': {0: 30, 1: 3, 2: 7}, 'B': {0: 1, 1: 1, 2: 4}, 'C': {0: 8, 1: 6, 2: 6}}
df_copy = pd.DataFrame(df.to_dict())
df_copy
Out[7]:
A B C
0 30 1 8
1 3 1 6
2 7 4 6