@@ -616,32 +616,75 @@ def test_types_median() -> None:
616
616
def test_types_iterrows () -> None :
617
617
df = pd .DataFrame (data = {"col1" : [2 , 1 ], "col2" : [3 , 4 ]})
618
618
check (
619
- assert_type (df .iterrows (), "Iterable [tuple[Hashable, pd.Series]]" ),
619
+ assert_type (df .iterrows (), "Iterator [tuple[Hashable, pd.Series]]" ),
620
620
Iterable ,
621
621
tuple ,
622
622
)
623
+ for t1 , t2 in df .iterrows ():
624
+ check (assert_type (t1 , Hashable ), Hashable )
625
+ check (assert_type (t2 , pd .Series ), pd .Series )
623
626
624
627
625
628
def test_types_itertuples () -> None :
626
629
df = pd .DataFrame (data = {"col1" : [2 , 1 ], "col2" : [3 , 4 ]})
627
630
check (
628
- assert_type (df .itertuples (), Iterable [_PandasNamedTuple ]),
629
- Iterable ,
631
+ assert_type (df .itertuples (), Iterator [_PandasNamedTuple ]),
632
+ Iterator ,
630
633
_PandasNamedTuple ,
631
634
)
632
635
check (
633
636
assert_type (
634
- df .itertuples (index = False , name = "Foobar" ), Iterable [_PandasNamedTuple ]
637
+ df .itertuples (index = False , name = "Foobar" ), Iterator [_PandasNamedTuple ]
635
638
),
636
- Iterable ,
639
+ Iterator ,
637
640
_PandasNamedTuple ,
638
641
)
639
642
check (
640
- assert_type (df .itertuples (index = False , name = None ), Iterable [tuple [Any , ...]]),
641
- Iterable ,
643
+ assert_type (df .itertuples (index = False , name = None ), Iterator [tuple [Any , ...]]),
644
+ Iterator ,
642
645
object ,
643
646
)
644
647
648
+ for t1 in df .itertuples ():
649
+ assert_type (t1 , _PandasNamedTuple )
650
+ assert t1 .__class__ .__name__ == "Pandas"
651
+ assert isinstance (t1 .Index , int )
652
+ assert isinstance (t1 .col1 , int )
653
+ assert isinstance (t1 .col2 , int )
654
+ for k in [0 , 1 , 2 ]:
655
+ assert isinstance (t1 [k ], int )
656
+
657
+ for t1 in df .itertuples (name = "FooBar" ):
658
+ assert_type (t1 , _PandasNamedTuple )
659
+ assert t1 .__class__ .__name__ == "FooBar"
660
+ assert isinstance (t1 .Index , int )
661
+ assert isinstance (t1 .col1 , int )
662
+ assert isinstance (t1 .col2 , int )
663
+ for k in [0 , 1 , 2 ]:
664
+ assert isinstance (t1 [k ], int )
665
+
666
+
667
+ def test_types_items () -> None :
668
+ df = pd .DataFrame (data = {"col1" : [2 , 1 ], "col2" : [3 , 4 ]})
669
+ check (
670
+ assert_type (df .items (), Iterator [tuple [Hashable , pd .Series ]]),
671
+ Iterator ,
672
+ tuple ,
673
+ )
674
+
675
+ for t1 , t2 in df .items ():
676
+ check (assert_type (t1 , Hashable ), Hashable )
677
+ check (assert_type (t2 , pd .Series ), pd .Series )
678
+
679
+
680
+ def test_frame_iterator () -> None :
681
+ """Test iterator methods for a dataframe GH1217."""
682
+ df = pd .DataFrame (data = {"col1" : [2 , 1 ], "col2" : [3 , 4 ]})
683
+
684
+ check (assert_type (next (df .items ()), tuple [Hashable , "pd.Series" ]), tuple )
685
+ check (assert_type (next (df .iterrows ()), tuple [Hashable , "pd.Series" ]), tuple )
686
+ check (assert_type (next (df .itertuples ()), _PandasNamedTuple ), _PandasNamedTuple )
687
+
645
688
646
689
def test_types_sum () -> None :
647
690
df = pd .DataFrame (data = {"col1" : [2 , 1 ], "col2" : [3 , 4 ]})
0 commit comments