@@ -659,7 +659,7 @@ def from_records(cls, data, index=None, exclude=None, columns=None,
659
659
if isinstance (data , (np .ndarray , DataFrame , dict )):
660
660
columns , sdict = _rec_to_dict (data )
661
661
else :
662
- sdict , columns = _list_to_sdict (data , columns )
662
+ sdict , columns = _to_sdict (data , columns )
663
663
664
664
if exclude is None :
665
665
exclude = set ()
@@ -1697,12 +1697,12 @@ def align(self, other, join='outer', axis=None, level=None, copy=True,
1697
1697
"""
1698
1698
if isinstance (other , DataFrame ):
1699
1699
return self ._align_frame (other , join = join , axis = axis , level = level ,
1700
- copy = copy ,
1700
+ copy = copy ,
1701
1701
fill_value = fill_value ,
1702
1702
fill_method = fill_method )
1703
1703
elif isinstance (other , Series ):
1704
1704
return self ._align_series (other , join = join , axis = axis , level = level ,
1705
- copy = copy ,
1705
+ copy = copy ,
1706
1706
fill_value = fill_value ,
1707
1707
fill_method = fill_method )
1708
1708
else : # pragma: no cover
@@ -4092,6 +4092,8 @@ def _rec_to_dict(arr):
4092
4092
4093
4093
4094
4094
def _to_sdict (data , columns ):
4095
+ if len (data ) == 0 :
4096
+ return {}, columns
4095
4097
if isinstance (data [0 ], (list , tuple )):
4096
4098
return _list_to_sdict (data , columns )
4097
4099
elif isinstance (data [0 ], dict ):
@@ -4101,6 +4103,18 @@ def _to_sdict(data, columns):
4101
4103
else : # pragma: no cover
4102
4104
raise TypeError ('No logic to handle %s type' % type (data [0 ]))
4103
4105
4106
+ def _list_to_sdict (data , columns ):
4107
+ if len (data ) > 0 and isinstance (data [0 ], tuple ):
4108
+ content = list (lib .to_object_array_tuples (data ).T )
4109
+ elif len (data ) > 0 :
4110
+ # list of lists
4111
+ content = list (lib .to_object_array (data ).T )
4112
+ else :
4113
+ if columns is None :
4114
+ columns = []
4115
+ return {}, columns
4116
+ return _convert_object_array (content , columns )
4117
+
4104
4118
def _list_of_series_to_sdict (data , columns ):
4105
4119
from pandas .core .index import _get_combined_index
4106
4120
0 commit comments