Панды to_csv (sys.stdout) не работает в моей среде - PullRequest
0 голосов
/ 06 июля 2018

Я запустил следующий простой скрипт:

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

Тем не менее, я не получил выводов на стандартный вывод программы под Python 2.7.15 на macOS 10.12.6. Вместо этого он сгенерировал файл с именем <stdout>, который содержит ожидаемый вывод.

Интересно, что в той же ОС Python 3.6.5 мог без проблем показывать результат как стандартный вывод, а virtualenved Python 3.6.5 не мог его показывать (и генерировал файл <stdout>) .

Кто-нибудь определяет причину этого результата? Версия Pandas - 0.23.1.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

В зависимости от того, что вы в конечном итоге пытаетесь сделать, этот обходной путь может или не может быть полезным:

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

UPDATE:

На самом деле, я думаю это может быть "правильный" способ сделать это :

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
0 голосов
/ 06 июля 2018
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...