Spec-Zone.ru › pandas 0.25

pandas.errors.DtypeWarning

exception pandas.errors.DtypeWarning [source]

Предупреждение, выводимое при чтении различных типов данных в столбце из файла.

Выдается при несовместимости типов данных. Это может произойти, когда read_csv или read_table сталкиваются с неравномерными типами данных в столбце(ах) заданного CSV-файла.

См. также

read_csv
Чтение CSV-файла (разделенного запятыми) в DataFrame.
read_table
Чтение общего файла, разделенного разделителями, в DataFrame.

Примечания

Это предупреждение выводится при работе с большими файлами, так как проверка типа данных происходит по частям.

Несмотря на предупреждение, CSV-файл читается с смешанными типами в одном столбце, который будет иметь тип object. Посмотрите примеры ниже, чтобы лучше понять эту проблему.

Примеры

В этом примере создаётся и считывается большой CSV-файл со столбцом, содержащим int и str.

>>> df = pd.DataFrame({'a': (['1'] * 100000 + ['X'] * 100000 +
...                          ['1'] * 100000),
...                    'b': ['b'] * 300000})
>>> df.to_csv('test.csv', index=False)
>>> df2 = pd.read_csv('test.csv')
... # DtypeWarning: Columns (0) have mixed types

Важно заметить, что df2 будет содержать как str , так и int для одного и того же ввода, '1'.

>>> df2.iloc[262140, 0]
'1'
>>> type(df2.iloc[262140, 0])
<class 'str'>
>>> df2.iloc[262150, 0]
1
>>> type(df2.iloc[262150, 0])
<class 'int'>

Один из способов решения этой проблемы — использование параметра dtype в функциях read_csv и read_table для явного преобразования:

>>> df2 = pd.read_csv('test.csv', sep=',', dtype={'a': str})

Предупреждение не выводилось.

>>> import os
>>> os.remove('test.csv')

© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.25.0/reference/api/pandas.errors.DtypeWarning.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API