【问题标题】:Pandas to_csv(sys.stdout) doesn't work under my environmentPandas to_csv(sys.stdout) 在我的环境下不起作用
【发布时间】:2018-12-14 12:55:55
【问题描述】:

我运行了以下简单脚本:

import sys
import pandas as pd
df = pd.DataFrame([[1,2,3], [4,5,6]])
df.to_csv(sys.stdout)

预期输出(作为标准输出)

,0,1,2
0,1,2,3
1,4,5,6

但是,我在 macOS 10.12.6 上的 Python 2.7.15 下的程序没有标准输出输出。相反,它生成了一个名为 <stdout> 的文件,其中包含预期的输出。

有趣的是,在同一个操作系统上,Python 3.6.5 可以毫无问题地将结果显示为标准输出,而 virtualenved Python 3.6.5 无法显示(并生成了<stdout> 文件)。

有没有人指出这个结果的原因? Pandas 的版本是 0.23.1。

【问题讨论】:

    标签: python python-3.x macos python-2.7 pandas


    【解决方案1】:
    【解决方案2】:

    取决于您最终尝试执行的操作,此解决方法可能有用,也可能没有用:

    In [85]: from io import StringIO
    
    In [86]: output = StringIO()
    
    In [87]: df.to_csv(output)
    
    In [88]: print(output.getvalue())
    ,0,1,2
    0,1,2,3
    1,4,5,6
    

    (Python 3.6)

    对于 Python 2.7,将上面的一行替换为:

    from StringIO import StringIO
    

    更新:

    其实我觉得this might be the 'proper' way to do it:

    In [3]: from io import StringIO
    
    In [4]: output = StringIO()
    
    In [5]: df.to_csv(output)
    
    In [6]: output.seek(0)
    Out[6]: 0
    
    In [7]: print(output.read())
    ,0,1,2
    0,1,2,3
    1,4,5,6
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 2021-08-01
      • 2018-05-01
      相关资源
      最近更新 更多