Skip to main content
`Ctrl`+`K`

# pandas.errors.DtypeWarning

exception pandas.errors.DtypeWarning

  Warning raised when reading different dtypes in a column from a file.

  Raised for a dtype incompatibility. This can happen whenever read_csv or read_table encounter non-uniform dtypes in a column(s) of a given CSV file.

  See also

  `read_csv`

    Read CSV (comma-separated) file into a DataFrame.

  `read_table`

    Read general delimited file into a DataFrame.

  Notes

  This warning is issued when dealing with larger files because the dtype checking happens per chunk read.

  Despite the warning, the CSV file is read with mixed types in a single column which will be an object type. See the examples below to better understand this issue.

  Examples

  This example creates and reads a large CSV file with a column that contains int and 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: a) have mixed types

  Important to notice that `df2` will contain both str and int for the same input, ‘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'>

  One way to solve this issue is using the dtype parameter in the read_csv and read_table functions to explicit the conversion:

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

  No warning was issued.