Skip to content

Commit 67e6489

Browse files
authored
concat ignoring DataFrame withouth columns (dask#10359)
1 parent 8523b3b commit 67e6489

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

dask/dataframe/multi.py

+13-7
Original file line numberDiff line numberDiff line change
@@ -1083,7 +1083,11 @@ def stack_partitions(dfs, divisions, join="outer", ignore_order=False, **kwargs)
10831083

10841084
meta = make_meta(
10851085
methods.concat(
1086-
[df._meta_nonempty for df in dfs],
1086+
[
1087+
df._meta_nonempty
1088+
for df in dfs
1089+
if not is_dataframe_like(df) or len(df._meta_nonempty.columns) > 0
1090+
],
10871091
join=join,
10881092
filter_warning=False,
10891093
**kwargs,
@@ -1268,12 +1272,14 @@ def concat(
12681272
raise ValueError("'join' must be 'inner' or 'outer'")
12691273

12701274
axis = DataFrame._validate_axis(axis)
1271-
try:
1272-
# remove any empty DataFrames
1273-
dfs = [df for df in dfs if bool(len(df.columns))]
1274-
except AttributeError:
1275-
# 'Series' object has no attribute 'columns'
1276-
pass
1275+
1276+
if axis == 1:
1277+
try:
1278+
# remove any empty DataFrames
1279+
dfs = [df for df in dfs if bool(len(df.columns))]
1280+
except AttributeError:
1281+
# 'Series' object has no attribute 'columns'
1282+
pass
12771283
dasks = [df for df in dfs if isinstance(df, _Frame)]
12781284
dfs = _maybe_from_pandas(dfs)
12791285

dask/dataframe/tests/test_multi.py

+2
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,8 @@ def test_concat_dataframe_empty():
859859

860860
assert_eq(df_concat_with_col, ddf_concat_with_col, check_dtype=False)
861861

862+
assert_eq(dd.concat([ddf, ddf[[]]]), pd.concat([df, df[[]]]))
863+
862864

863865
@pytest.mark.parametrize(
864866
"value_1, value_2",

0 commit comments

Comments
 (0)