Skip to content

Commit 31681d2

Browse files
committed
Merge pull request #5568 from jreback/df_perf
PERF: slow conversion of single series to data frame
2 parents b05cbe6 + 4549590 commit 31681d2

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

pandas/core/frame.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4575,7 +4575,7 @@ def extract_index(data):
45754575

45764576

45774577
def _prep_ndarray(values, copy=True):
4578-
if not isinstance(values, np.ndarray):
4578+
if not isinstance(values, (np.ndarray,Series)):
45794579
if len(values) == 0:
45804580
return np.empty((0, 0), dtype=object)
45814581

vb_suite/frame_ctor.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,24 @@
2525
frame_ctor_nested_dict = Benchmark("DataFrame(data)", setup)
2626

2727
# From JSON-like stuff
28-
2928
frame_ctor_list_of_dict = Benchmark("DataFrame(dict_list)", setup,
3029
start_date=datetime(2011, 12, 20))
3130

3231
series_ctor_from_dict = Benchmark("Series(some_dict)", setup)
3332

3433
# nested dict, integer indexes, regression described in #621
35-
3634
setup = common_setup + """
3735
data = dict((i,dict((j,float(j)) for j in xrange(100))) for i in xrange(2000))
3836
"""
3937
frame_ctor_nested_dict_int64 = Benchmark("DataFrame(data)", setup)
4038

39+
# from a mi-series
40+
setup = common_setup + """
41+
mi = MultiIndex.from_tuples([(x,y) for x in range(100) for y in range(100)])
42+
s = Series(randn(10000), index=mi)
43+
"""
44+
frame_from_series = Benchmark("DataFrame(s)", setup)
45+
4146
#----------------------------------------------------------------------
4247
# get_numeric_data
4348

0 commit comments

Comments
 (0)