kii*_*chi 8 python macos python-2.7 python-3.x pandas
我运行了以下简单脚本:
import sys
import pandas as pd
df = pd.DataFrame([[1,2,3], [4,5,6]])
df.to_csv(sys.stdout)
Run Code Online (Sandbox Code Playgroud)
,0,1,2
0,1,2,3
1,4,5,6
Run Code Online (Sandbox Code Playgroud)
但是,我在macOS 10.12.6上的Python 2.7.15下的程序没有输出标准输出.相反,它生成了一个名为<stdout>
包含预期输出的文件.
有趣的是,在同一个操作系统上,Python 3.6.5可以将结果显示为标准输出而没有任何问题,并且虚拟化的 Python 3.6.5无法显示它(并生成<stdout>
文件).
有没有人确定这个结果的原因?熊猫的版本是0.23.1.
根据您最终尝试执行此解决方法的目的,可能有用也可能没用:
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
Run Code Online (Sandbox Code Playgroud)
(Python 3.6)
对于 Python 2.7,将上面的一行替换为:
from StringIO import StringIO
Run Code Online (Sandbox Code Playgroud)
更新:
实际上,我认为这可能是“正确”的做法:
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
Run Code Online (Sandbox Code Playgroud)