diff --git a/pandas/io/pytables.py b/pandas/io/pytables.py index 91f7b2afec56c..3659e7247495d 100644 --- a/pandas/io/pytables.py +++ b/pandas/io/pytables.py @@ -30,6 +30,7 @@ from pandas._config import ( config, get_option, + using_copy_on_write, using_pyarrow_string_dtype, ) @@ -3297,6 +3298,10 @@ def read( if len(dfs) > 0: out = concat(dfs, axis=1, copy=True) + if using_copy_on_write(): + # with CoW, concat ignores the copy keyword. Here, we still want + # to copy to enforce optimized column-major layout + out = out.copy() out = out.reindex(columns=items, copy=False) return out