@@ -1655,19 +1655,21 @@ def check(df):
1655
1655
for i in range (len (df .columns )):
1656
1656
df .iloc [:, i ]
1657
1657
1658
- # allow single nans to succeed
1659
1658
indexer = np .arange (len (df .columns ))[isna (df .columns )]
1660
1659
1661
- if len (indexer ) == 1 :
1660
+ if len (indexer ) == 0 :
1661
+ def f ():
1662
+ df .loc [:, np .nan ]
1663
+ pytest .raises (TypeError , f )
1664
+ elif len (indexer ) == 1 :
1662
1665
tm .assert_series_equal (df .iloc [:, indexer [0 ]],
1663
1666
df .loc [:, np .nan ])
1664
1667
1665
- # multiple nans should fail
1668
+ # multiple nans should result in DataFrame
1666
1669
else :
1670
+ tm .assert_frame_equal (df .iloc [:, indexer ],
1671
+ df .loc [:, np .nan ])
1667
1672
1668
- def f ():
1669
- df .loc [:, np .nan ]
1670
- pytest .raises (TypeError , f )
1671
1673
1672
1674
df = DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ]], index = [1 , np .nan ])
1673
1675
check (df )
@@ -1683,6 +1685,11 @@ def f():
1683
1685
columns = [np .nan , 1.1 , 2.2 , np .nan ])
1684
1686
check (df )
1685
1687
1688
+ # GH 21428 (non-unique columns)
1689
+ df = DataFrame ([[0.0 , 1 , 2 , 3.0 ], [4 , 5 , 6 , 7 ]],
1690
+ columns = [np .nan , 1 , 2 , 2 ])
1691
+ check (df )
1692
+
1686
1693
def test_constructor_lists_to_object_dtype (self ):
1687
1694
# from #1074
1688
1695
d = DataFrame ({'a' : [np .nan , False ]})
0 commit comments