【问题标题】:Convert Pandas dataframe to csv string将 Pandas 数据帧转换为 csv 字符串
【发布时间】:2014-06-07 12:53:13
【问题描述】:

这是我想要得到的一个例子:

我有:

import pandas as pd 
df = pd.DataFrame({'A' : [0, 1], 'B' : [1, 6]})

我的目标是:

',A,B\n0,0,1\n1,1,6\n'

我可以通过懒惰和可怕来实现这一点:

df.to_csv('temp.csv') # create unnecessary file
body = open('temp.csv').read()

另外to_string() 方法看起来很有前途;但是,我能想到的最好的方法是:

body = df.to_string()[1:].replace('  ', ',') + '\n'

这不会创建不必要的文件,但看起来很草率而且可能不太可靠。

我是否缺少更简单的解决方案?

【问题讨论】:

    标签: python pandas


    【解决方案1】:
    In [10]: df = pd.DataFrame({'A' : [0, 1], 'B' : [1, 6]})
    
    In [11]: import io
    
    In [12]: s = io.StringIO()
    
    In [13]: df.to_csv(s)
    
    In [14]: s.getvalue()
    Out[14]: ',A,B\n0,0,1\n1,1,6\n'
    

    【讨论】:

    • -1 因为它是一个矫枉过正(也许它来自以前版本的熊猫)。但最近,如果没有提供path_or_buf,则结果将作为字符串返回。请参阅下面的答案。
    【解决方案2】:

    最简单的方法是不输入任何文件名,在这种情况下返回一个字符串:

    >>> df = pd.DataFrame({'A' : [0, 1], 'B' : [1, 6]})
    >>> df.to_csv()
    ',A,B\n0,0,1\n1,1,6\n'
    

    【讨论】:

    • 如果您使用的是系列,则需要将其包装在数据框构造函数中:pandas.DataFrame(series).to_csv()
    猜你喜欢
    • 2020-06-10
    • 2021-12-18
    • 1970-01-01
    • 2023-03-31
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多