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