Skip to content

Commit c93d156

Browse files
committed
Merge pull request #698 from SixtyCapital/allow-empty-dfs
Allow empty DataFrame in Dataset construction
2 parents 922774d + d57414d commit c93d156

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

xray/core/dataset.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1788,11 +1788,8 @@ def from_dataframe(cls, dataframe):
17881788
obj[dim] = (dim, lev)
17891789
shape = [lev.size for lev in idx.levels]
17901790
else:
1791-
if idx.size:
1792-
dims = (idx.name if idx.name is not None else 'index',)
1793-
obj[dims[0]] = (dims, idx)
1794-
else:
1795-
dims = []
1791+
dims = (idx.name if idx.name is not None else 'index',)
1792+
obj[dims[0]] = (dims, idx)
17961793
shape = -1
17971794

17981795
for name, series in iteritems(dataframe):

xray/test/test_dataset.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1639,9 +1639,16 @@ def test_to_and_from_dataframe(self):
16391639

16401640
df = pd.DataFrame()
16411641
actual = Dataset.from_dataframe(df)
1642-
expected = Dataset()
1642+
expected = Dataset(coords={'index':[]})
16431643
self.assertDatasetIdentical(expected, actual)
16441644

1645+
# GH697
1646+
df = pd.DataFrame({'A' : []})
1647+
actual = Dataset.from_dataframe(df)
1648+
expected = Dataset({'A': DataArray([], dims=('index',))})
1649+
self.assertDatasetIdentical(expected, actual)
1650+
1651+
16451652
# regression test for GH278
16461653
# use int64 to ensure consistent results for the pandas .equals method
16471654
# on windows (which requires the same dtype)

0 commit comments

Comments
 (0)