From fbafc112a9d5af43804ce6f2f2fbecea62ae94ec Mon Sep 17 00:00:00 2001 From: phofl Date: Tue, 11 May 2021 00:02:06 +0200 Subject: [PATCH 1/2] Bug in read_csv and read_excel not applying dtype to second col with dup cols --- doc/source/whatsnew/v1.3.0.rst | 1 + pandas/_libs/parsers.pyx | 15 +++++++++++---- pandas/io/parsers/python_parser.py | 16 ++++++++++++---- .../io/data/excel/df_mangle_dup_col_dtypes.ods | Bin 0 -> 7784 bytes .../io/data/excel/df_mangle_dup_col_dtypes.xls | Bin 0 -> 6144 bytes .../io/data/excel/df_mangle_dup_col_dtypes.xlsb | Bin 0 -> 9132 bytes .../io/data/excel/df_mangle_dup_col_dtypes.xlsm | Bin 0 -> 7236 bytes .../io/data/excel/df_mangle_dup_col_dtypes.xlsx | Bin 0 -> 5507 bytes pandas/tests/io/excel/test_readers.py | 8 ++++++++ .../tests/io/parser/dtypes/test_dtypes_basic.py | 10 ++++++++++ 10 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.ods create mode 100644 pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.xls create mode 100755 pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.xlsb create mode 100644 pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.xlsm create mode 100644 pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.xlsx diff --git a/doc/source/whatsnew/v1.3.0.rst b/doc/source/whatsnew/v1.3.0.rst index cf3dd1b0e3226..e107dd927ad89 100644 --- a/doc/source/whatsnew/v1.3.0.rst +++ b/doc/source/whatsnew/v1.3.0.rst @@ -835,6 +835,7 @@ I/O - Bug in :func:`read_excel` raising ``AttributeError`` with ``MultiIndex`` header followed by two empty rows and no index, and bug affecting :func:`read_excel`, :func:`read_csv`, :func:`read_table`, :func:`read_fwf`, and :func:`read_clipboard` where one blank row after a ``MultiIndex`` header with no index would be dropped (:issue:`40442`) - Bug in :meth:`DataFrame.to_string` misplacing the truncation column when ``index=False`` (:issue:`40907`) - Bug in :func:`read_orc` always raising ``AttributeError`` (:issue:`40918`) +- Bug in :func:`read_csv` and :func:`read_excel` not respecting dtype for duplicated column name when ``mangle_dupe_cols`` is set to ``True`` (:issue:`35211`) - Bug in :func:`read_csv` and :func:`read_table` misinterpreting arguments when ``sys.setprofile`` had been previously called (:issue:`41069`) - Bug in the conversion from pyarrow to pandas (e.g. for reading Parquet) with nullable dtypes and a pyarrow array whose data buffer size is not a multiple of dtype size (:issue:`40896`) diff --git a/pandas/_libs/parsers.pyx b/pandas/_libs/parsers.pyx index 8d9f1773590b0..0878aff562c12 100644 --- a/pandas/_libs/parsers.pyx +++ b/pandas/_libs/parsers.pyx @@ -685,10 +685,17 @@ cdef class TextReader: count = counts.get(name, 0) if not self.has_mi_columns and self.mangle_dupe_cols: - while count > 0: - counts[name] = count + 1 - name = f'{name}.{count}' - count = counts.get(name, 0) + if count > 0: + while count > 0: + counts[name] = count + 1 + name = f'{name}.{count}' + count = counts.get(name, 0) + if ( + self.dtype is not None + and self.dtype.get(old_name) is not None + and self.dtype.get(name) is None + ): + self.dtype.update({name: self.dtype.get(old_name)}) if old_name == '': unnamed_cols.add(name) diff --git a/pandas/io/parsers/python_parser.py b/pandas/io/parsers/python_parser.py index 0055f3123f3c0..1d70b6e59c51b 100644 --- a/pandas/io/parsers/python_parser.py +++ b/pandas/io/parsers/python_parser.py @@ -421,12 +421,20 @@ def _infer_columns(self): counts: DefaultDict = defaultdict(int) for i, col in enumerate(this_columns): + old_col = col cur_count = counts[col] - while cur_count > 0: - counts[col] = cur_count + 1 - col = f"{col}.{cur_count}" - cur_count = counts[col] + if cur_count > 0: + while cur_count > 0: + counts[col] = cur_count + 1 + col = f"{col}.{cur_count}" + cur_count = counts[col] + if ( + self.dtype is not None + and self.dtype.get(old_col) is not None + and self.dtype.get(col) is None + ): + self.dtype.update({col: self.dtype.get(old_col)}) this_columns[i] = col counts[col] = cur_count + 1 diff --git a/pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.ods b/pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.ods new file mode 100644 index 0000000000000000000000000000000000000000..66558c16319fcb28d680c39d7b37daaa31b71543 GIT binary patch literal 7784 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 r-YC zv5qFzg-d`x%ROi7b8bJxpMRsy?*IVK6q0i@z%>6Z@BG^TIT8Rk6L`)o8q@qY)Bh#+ z{F&@bemS>ZO!MDlKg&OV=J|Da*qCYjH_xwf(4U!p^+@(NOh3y*f95$8U(U_rH#}z} z`;Qd!|I1SJ8=01m@Z?I%D-p%TweMQ%MXR*XYJ%{*L!Z- z7?%IW4vgIN<01Zm{J9!`rmdV?G$t`&RL_5umVcvuE;5{Dv~%;s{kd-cZ`{xO_OlYi zxea67hMpHB{tf&&|Nc6_28v%d`9F|<%FpLr@?t(7{*6>&pQFcFTs}7+%&Pr1 XO6zFi;+@?_f%(BOL1*Lg+1396FmTk4 literal 0 HcmV?d00001 diff --git a/pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.xls b/pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.xls new file mode 100644 index 0000000000000000000000000000000000000000..472ad75901286410980004e4b4df34cf4924a970 GIT binary patch literal 6144 zcmeHLO>9(E6h7~DrhU^wJ1svdNPSeHe*;okh%wlaQiK>%A{aL$cG}KBVQ8CL4X&Ib z#Em4Fnz(5~h}{qqe`10QG`4Z$0wbCbqj6DO_!C_W24hHQ$L~A$P5avPWv19@AU*AO z@11jh&b{ZHd(XY^>etni7d~2dUFOk~QXahdKS z4NQ4+r42(cVi=&!%K!%;zue33qGc^lwMY#-C;j*v5?9)#5BZ?H3TqcnYvD0|QN{H1 zpBKfnFVtpP{;UQH>5BD!{qy|hIbH%RwEubDbN^QWD}a?iB~S$*1V}Yd1FQm818ab_ zzCMz*y8aX_43)3FPH8_ z0}%&SEDg)$l~;J=>)C%D9`RvlLjB?=@D9rWeWNXr?soqx+NEmT^M>~i!v%zj7|5 z+z&gVA<@M8h|rT~6qLB7Bf zbUwUtDUG`$HuhXba?GQd63weKrJC1dLYlA2lxe;?6V7$2U!TF=_yQfdlMfzECWl(c zIj`4vkMkHg8W+5RT>w}rn6%K=0Vowek5ImS~y+okg<&GIy62;kt176kp0pkFc1 z^R`PxmQmqz>?}uyEkqG#96M5+xYXWY+&~<0Fqnfl;rxwIavMYEN5M#m9HNdRZ$lWP zPPelLK*1wM8IsM=WR9@toFj~b^>&s!Zw zqwl@tNOS$i-}4|E1$a?qeH`Giy%*p+r4!(xkp}o)ISDX&oCf%AIR{YEZ&T(C!h;Mk za$q1a*b{S~O}^6Gr*9LsX#wJZyfMO{X38vp;y@L0VL&h7>%*WN$8DS6A&wj7BGMYHmg}V--WLnY&xhL?#>A)P071MQ2 z8_MT;D4R5=GT=u&`1`y%3v$zv3}{)HT@Lw1vPlc~5NSjsUT8>RIVdk<{U`A1;kTcC z_zIL#n~*bv7f?Sq!PMZ%=Yd!3`kT=9iZ^6fc0)q9&LOE^pcXfu9e1$)t&lzB$zO_W NvHJIafBC=V{{yzBM6>_^ literal 0 HcmV?d00001 diff --git a/pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.xlsb b/pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.xlsb new file mode 100755 index 0000000000000000000000000000000000000000..5052102c6655ddd9327f8312fd99c9ad45377b73 GIT binary patch literal 9132 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 S?g#(`fCXd#pyYe>1pE)`Pn19a literal 0 HcmV?d00001 diff --git a/pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.xlsm b/pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.xlsm new file mode 100644 index 0000000000000000000000000000000000000000..51edc7f94f9d8d26d210b436d900d52f37658bf6 GIT binary patch literal 7236 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 QK|#Ss9thmsrb7PvA4<$&V*mgE literal 0 HcmV?d00001 diff --git a/pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.xlsx b/pandas/tests/io/data/excel/df_mangle_dup_col_dtypes.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ec4e49add4233bbffb00bd3d02a015ee32cf52b4 GIT binary patch literal 5507 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 Date: Wed, 12 May 2021 11:18:22 +0200 Subject: [PATCH 2/2] Change dtypes --- pandas/tests/io/excel/test_readers.py | 2 +- pandas/tests/io/parser/dtypes/test_dtypes_basic.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/tests/io/excel/test_readers.py b/pandas/tests/io/excel/test_readers.py index 634dadce16abc..a46cb70097bd8 100644 --- a/pandas/tests/io/excel/test_readers.py +++ b/pandas/tests/io/excel/test_readers.py @@ -555,7 +555,7 @@ def test_reader_dtype_str(self, read_ext, dtype, expected): actual = pd.read_excel(basename + read_ext, dtype=dtype) tm.assert_frame_equal(actual, expected) - @pytest.mark.parametrize("dtypes, exp_value", [({}, "1"), ({"a.1": int}, 1)]) + @pytest.mark.parametrize("dtypes, exp_value", [({}, "1"), ({"a.1": "int64"}, 1)]) def test_dtype_mangle_dup_cols(self, read_ext, dtypes, exp_value): # GH#35211 basename = "df_mangle_dup_col_dtypes" diff --git a/pandas/tests/io/parser/dtypes/test_dtypes_basic.py b/pandas/tests/io/parser/dtypes/test_dtypes_basic.py index a917eebbb4a5d..59fd3de60e0bf 100644 --- a/pandas/tests/io/parser/dtypes/test_dtypes_basic.py +++ b/pandas/tests/io/parser/dtypes/test_dtypes_basic.py @@ -240,7 +240,7 @@ def test_true_values_cast_to_bool(all_parsers): tm.assert_frame_equal(result, expected) -@pytest.mark.parametrize("dtypes, exp_value", [({}, "1"), ({"a.1": int}, 1)]) +@pytest.mark.parametrize("dtypes, exp_value", [({}, "1"), ({"a.1": "int64"}, 1)]) def test_dtype_mangle_dup_cols(all_parsers, dtypes, exp_value): # GH#35211 parser = all_parsers