pandas.DataFrame.applymap возвращает серию панд, если используется «python -O» - PullRequest
0 голосов
/ 06 октября 2018

Я использую python для чтения некоторых данных из файла и сохранения их во фрейме данных pandas.Файл с данными «test.prn» содержит:

    A  B
0 0.0  2
1 1.0  3

Ниже я приложил небольшой код, чтобы проиллюстрировать, что происходит.При выполнении кода «python my_prog.py» все работает как положено, и read_csv возвращает кадр pandas.Однако, если я выполню как «python -O my_prog.py», я получу серию панд.Кто-нибудь знает, почему происходит это нежелательное изменение?Мне нужно, чтобы возвращение read_csv было фреймом панды, независимо от аргументов python.

my_prog.py:

import pandas as pd
pdf1 = pd.DataFrame()
pdf1 = pd.read_csv('test.prn', sep='\s+', header=0, index_col=0)
pdf2 = pdf1.applymap(lambda x: x*x)
print type(pdf1)
print type(pdf2)

Выполнение как "python my_prog.py" дает:

<class 'pandas.core.frame.DataFrame'> <class 'pandas.core.frame.DataFrame'>

Выполнение как "python -O my_prog.py" дает:

<class 'pandas.core.frame.DataFrame'> <class 'pandas.core.series.Series'>

1 Ответ

0 голосов
/ 06 октября 2018

Я не могу воспроизвести это с Python 2.7.13 и Pandas 0.19.2.Я получаю

<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>

с переключателем -O и без него.

В вашем случае это может быть ошибка в Pandas.Если вы используете более старую версию Pandas, попробуйте обновить ее до более новой (по крайней мере до 0.19.2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...