Repl可管理的DataFrame表示

时间:2014-07-15 23:29:16

标签: python pandas

有没有办法获得数据帧的文本表示,我可以将其粘贴回到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_csvto_dict等等,我想要的是一种精确复制数据帧的方法,也可以作为表读取。似乎这可能没有当前的答案(虽然我很想看到熊猫添加它),但我想我可以让pd.read_clipboard('\s\s+')为95%的用法工作。

2 个答案:

答案 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