pandas.errors.DtypeWarning
- exceptionpandas.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})Предупреждение не было выдано.
© 2008–2022, 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/1.5.0/reference/api/pandas.errors.DtypeWarning.html