1616
1717from pandas.compat import(
1818 map, zip, range, long, lrange, lmap, lzip,
19- OrderedDict, u, StringIO, string_types,
20- is_platform_windows
19+ OrderedDict, u, StringIO, is_platform_windows
2120)
2221from pandas import compat
2322
3332import pandas.core.datetools as datetools
3433from pandas import (DataFrame, Index, Series, Panel, notnull, isnull,
3534 MultiIndex, DatetimeIndex, Timestamp, date_range,
36- read_csv, timedelta_range, Timedelta, CategoricalIndex,
37- option_context, period_range)
35+ read_csv, timedelta_range, Timedelta, option_context, period_range)
3836from pandas.core.dtypes import DatetimeTZDtype
3937import pandas as pd
4038from pandas.parser import CParserError
@@ -2239,7 +2237,6 @@ class TestDataFrame(tm.TestCase, CheckIndexing,
22392237 _multiprocess_can_split_ = True
22402238
22412239 def setUp(self):
2242- import warnings
22432240
22442241 self.frame = _frame.copy()
22452242 self.frame2 = _frame2.copy()
@@ -3568,6 +3565,20 @@ def test_constructor_tuples(self):
35683565 expected = DataFrame({'A': Series([(1, 2), (3, 4)])})
35693566 assert_frame_equal(result, expected)
35703567
3568+ def test_constructor_namedtuples(self):
3569+ # GH11181
3570+ from collections import namedtuple
3571+ named_tuple = namedtuple("Pandas", list('ab'))
3572+ tuples = [named_tuple(1, 3), named_tuple(2, 4)]
3573+ expected = DataFrame({'a': [1, 2], 'b': [3, 4]})
3574+ result = DataFrame(tuples)
3575+ assert_frame_equal(result, expected)
3576+
3577+ # with columns
3578+ expected = DataFrame({'y': [1, 2], 'z': [3, 4]})
3579+ result = DataFrame(tuples, columns=['y', 'z'])
3580+ assert_frame_equal(result, expected)
3581+
35713582 def test_constructor_orient(self):
35723583 data_dict = self.mixed_frame.T._series
35733584 recons = DataFrame.from_dict(data_dict, orient='index')
@@ -4418,7 +4429,7 @@ def test_timedeltas(self):
44184429
44194430 def test_operators_timedelta64(self):
44204431
4421- from datetime import datetime, timedelta
4432+ from datetime import timedelta
44224433 df = DataFrame(dict(A = date_range('2012-1-1', periods=3, freq='D'),
44234434 B = date_range('2012-1-2', periods=3, freq='D'),
44244435 C = Timestamp('20120101')-timedelta(minutes=5,seconds=5)))
@@ -9645,7 +9656,6 @@ def test_replace_mixed(self):
96459656 assert_frame_equal(result,expected)
96469657
96479658 # test case from
9648- from pandas.util.testing import makeCustomDataframe as mkdf
96499659 df = DataFrame({'A' : Series([3,0],dtype='int64'), 'B' : Series([0,3],dtype='int64') })
96509660 result = df.replace(3, df.mean().to_dict())
96519661 expected = df.copy().astype('float64')
@@ -12227,7 +12237,6 @@ def test_sort_index_inplace(self):
1222712237 assert_frame_equal(df, expected)
1222812238
1222912239 def test_sort_index_different_sortorder(self):
12230- import random
1223112240 A = np.arange(20).repeat(5)
1223212241 B = np.tile(np.arange(5), 20)
1223312242
@@ -13301,7 +13310,6 @@ def test_quantile(self):
1330113310
1330213311 def test_quantile_axis_parameter(self):
1330313312 # GH 9543/9544
13304- from numpy import percentile
1330513313
1330613314 df = DataFrame({"A": [1, 2, 3], "B": [2, 3, 4]}, index=[1, 2, 3])
1330713315
@@ -16093,8 +16101,6 @@ def test_query_doesnt_pickup_local(self):
1609316101 n = m = 10
1609416102 df = DataFrame(np.random.randint(m, size=(n, 3)), columns=list('abc'))
1609516103
16096- from numpy import sin
16097-
1609816104 # we don't pick up the local 'sin'
1609916105 with tm.assertRaises(UndefinedVariableError):
1610016106 df.query('sin > 5', engine=engine, parser=parser)
@@ -16392,7 +16398,6 @@ def setUpClass(cls):
1639216398 cls.frame = _frame.copy()
1639316399
1639416400 def test_query_builtin(self):
16395- from pandas.computation.engines import NumExprClobberingError
1639616401 engine, parser = self.engine, self.parser
1639716402
1639816403 n = m = 10
@@ -16413,7 +16418,6 @@ def setUpClass(cls):
1641316418 cls.frame = _frame.copy()
1641416419
1641516420 def test_query_builtin(self):
16416- from pandas.computation.engines import NumExprClobberingError
1641716421 engine, parser = self.engine, self.parser
1641816422
1641916423 n = m = 10
0 commit comments