diff --git a/doc/source/whatsnew/v1.3.0.rst b/doc/source/whatsnew/v1.3.0.rst index fb8eecdaa275e..be3fce6f8c5d0 100644 --- a/doc/source/whatsnew/v1.3.0.rst +++ b/doc/source/whatsnew/v1.3.0.rst @@ -533,6 +533,7 @@ I/O - :meth:`read_sql` returned an empty generator if ``chunksize`` was no-zero and the query returned no results. Now returns a generator with a single empty dataframe (:issue:`34411`) - Bug in :func:`read_hdf` returning unexpected records when filtering on categorical string columns using ``where`` parameter (:issue:`39189`) - Bug in :func:`read_sas` raising ``ValueError`` when ``datetimes`` were null (:issue:`39725`) +- Bug in :func:`read_excel` dropping empty values from single-column spreadsheets (:issue:`39808`) Period ^^^^^^ diff --git a/pandas/io/excel/_base.py b/pandas/io/excel/_base.py index 9ad589d4583c6..2bf70a18e810f 100644 --- a/pandas/io/excel/_base.py +++ b/pandas/io/excel/_base.py @@ -598,6 +598,7 @@ def parse( skiprows=skiprows, nrows=nrows, na_values=na_values, + skip_blank_lines=False, # GH 39808 parse_dates=parse_dates, date_parser=date_parser, thousands=thousands, diff --git a/pandas/tests/io/data/excel/one_col_blank_line.ods b/pandas/tests/io/data/excel/one_col_blank_line.ods new file mode 100644 index 0000000000000..df5fbcfaa0357 Binary files /dev/null and b/pandas/tests/io/data/excel/one_col_blank_line.ods differ diff --git a/pandas/tests/io/data/excel/one_col_blank_line.xls b/pandas/tests/io/data/excel/one_col_blank_line.xls new file mode 100644 index 0000000000000..dcf2ebecded61 Binary files /dev/null and b/pandas/tests/io/data/excel/one_col_blank_line.xls differ diff --git a/pandas/tests/io/data/excel/one_col_blank_line.xlsb b/pandas/tests/io/data/excel/one_col_blank_line.xlsb new file mode 100644 index 0000000000000..9257d016c762a Binary files /dev/null and b/pandas/tests/io/data/excel/one_col_blank_line.xlsb differ diff --git a/pandas/tests/io/data/excel/one_col_blank_line.xlsm b/pandas/tests/io/data/excel/one_col_blank_line.xlsm new file mode 100644 index 0000000000000..c249901ecc10e Binary files /dev/null and b/pandas/tests/io/data/excel/one_col_blank_line.xlsm differ diff --git a/pandas/tests/io/data/excel/one_col_blank_line.xlsx b/pandas/tests/io/data/excel/one_col_blank_line.xlsx new file mode 100644 index 0000000000000..2538e406d2e77 Binary files /dev/null and b/pandas/tests/io/data/excel/one_col_blank_line.xlsx differ diff --git a/pandas/tests/io/excel/test_readers.py b/pandas/tests/io/excel/test_readers.py index 1c71666e88651..cdcbc502b90d9 100644 --- a/pandas/tests/io/excel/test_readers.py +++ b/pandas/tests/io/excel/test_readers.py @@ -1185,6 +1185,14 @@ def test_no_header_with_list_index_col(self, read_ext): ) tm.assert_frame_equal(expected, result) + def test_one_col_noskip_blank_line(self, read_ext): + # GH 39808 + file_name = "one_col_blank_line" + read_ext + data = [0.5, np.nan, 1, 2] + expected = DataFrame(data, columns=["numbers"]) + result = pd.read_excel(file_name) + tm.assert_frame_equal(result, expected) + class TestExcelFileRead: @pytest.fixture(autouse=True)