Próbuję odczytać prosty plik oddzielony spacją przy użyciu metody pandy read_csv
. Jednak pandy nie wydają się być posłuszne mojej argumentacji. Może błędnie to określam?Określanie dtype float32 z pandas.read_csv na pandach 0.10.1
Oddałem w dół moje nieco skomplikowane połączenie z read_csv
tym prostym testowym pudełkiem. Używam argumentu converters
w moim "prawdziwym" scenariuszu, ale usunąłem to dla uproszczenia.
Poniżej jest moje ipython sesja:
>>> cat test.out
a b
0.76398 0.81394
0.32136 0.91063
>>> import pandas
>>> import numpy
>>> x = pandas.read_csv('test.out', dtype={'a': numpy.float32}, delim_whitespace=True)
>>> x
a b
0 0.76398 0.81394
1 0.32136 0.91063
>>> x.a.dtype
dtype('float64')
Próbowałem to również za pomocą tego z dtype
z numpy.int32
lub numpy.int64
. Te wybory spowodować wyjątek:
AttributeError: 'NoneType' object has no attribute 'dtype'
Ja zakładając AttributeError
dlatego pandy nie będzie automatycznie próbować nawracać/obciąć wartości pływaka do liczby całkowitej?
Używam 32-bitowego komputera z 32-bitową wersją Pythona.
>>> !uname -a
Linux ubuntu 3.0.0-13-generiC#22-Ubuntu SMP Wed Nov 2 13:25:36 UTC 2011 i686 i686 i386 GNU/Linux
>>> import platform
>>> platform.architecture()
('32bit', 'ELF')
>>> pandas.__version__
'0.10.1'
myślę, że wygląda podobnie do [tej kwestii na github] (https://github.com/pydata/pandas/issues/2570) ... –
@AndyHayden Myślę, że masz rację. Zagadnienie "AttributeError" jest dokładnie tym, o czym wspomina problem Github. Jednak w moim drugim scenariuszu wartości są zmiennymi, ale pandy nie przestrzegają argumentu 'dtype', gdy próbuję użyć float32 zamiast float64, itd. –