diff --git a/python/cudf/cudf/_lib/csv.pyx b/python/cudf/cudf/_lib/csv.pyx index e0f57df1368..058e884e08b 100644 --- a/python/cudf/cudf/_lib/csv.pyx +++ b/python/cudf/cudf/_lib/csv.pyx @@ -276,8 +276,10 @@ def read_csv( col_name = df._data.names[index] df._data[col_name] = df._data[col_name].astype(col_dtype) - if names is not None and len(names) and isinstance(names[0], (int)): + if names is not None and len(names) and isinstance(names[0], int): df.columns = [int(x) for x in df._data] + elif names is None and header == -1 and cudf.get_option("mode.pandas_compatible"): + df.columns = [int(x) for x in df._column_names] # Set index if the index_col parameter is passed if index_col is not None and index_col is not False: diff --git a/python/cudf/cudf/tests/test_csv.py b/python/cudf/cudf/tests/test_csv.py index cee3d23eadc..b6efc8ebd88 100644 --- a/python/cudf/cudf/tests/test_csv.py +++ b/python/cudf/cudf/tests/test_csv.py @@ -2269,3 +2269,11 @@ def test_read_compressed_BOM(tmpdir): f.write(buffer) assert_eq(pd.read_csv(fname), cudf.read_csv(fname)) + + +def test_read_header_none_pandas_compat_column_type(): + data = "1\n2\n" + with cudf.option_context("mode.pandas_compatible", True): + result = cudf.read_csv(StringIO(data), header=None).columns + expected = pd.read_csv(StringIO(data), header=None).columns + pd.testing.assert_index_equal(result, expected, exact=True)