pandas.errors.DtypeWarning
-
exception pandas.errors.DtypeWarning[source] -
Предупреждение, выводимое при чтении различных типов данных в столбце из файла.
Выводится при несовместимости типов данных. Это может произойти, когда
read_csvилиread_tableсталкиваются с неравномерными типами данных в столбце(ах) заданного CSV-файла.См. также
-
pandas.read_csv - Чтение CSV-файла (разделенного запятыми) в DataFrame.
-
pandas.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.23.4/generated/pandas.errors.DtypeWarning.html