File tree 3 files changed +19
-3
lines changed
3 files changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -159,7 +159,8 @@ class Series(base.IndexOpsMixin, generic.NDFrame):
159
159
160
160
_typ = "series"
161
161
162
- _metadata : List [str ] = []
162
+ _name : Hashable
163
+ _metadata : List [str ] = ["name" ]
163
164
_accessors = {"dt" , "cat" , "str" , "sparse" }
164
165
_deprecations = (
165
166
base .IndexOpsMixin ._deprecations
@@ -425,13 +426,13 @@ def dtypes(self):
425
426
426
427
@property
427
428
def name (self ) -> Optional [Hashable ]:
428
- return self .attrs . get ( "name" , None )
429
+ return self ._name
429
430
430
431
@name .setter
431
432
def name (self , value : Optional [Hashable ]) -> None :
432
433
if not is_hashable (value ):
433
434
raise TypeError ("Series.name must be a hashable type" )
434
- self . attrs [ "name" ] = value
435
+ object . __setattr__ ( self , "_name" , value )
435
436
436
437
@property
437
438
def values (self ):
Original file line number Diff line number Diff line change @@ -551,3 +551,11 @@ async def test_tab_complete_warning(self, ip):
551
551
with tm .assert_produces_warning (None ):
552
552
with provisionalcompleter ("ignore" ):
553
553
list (ip .Completer .completions ("df." , 1 ))
554
+
555
+ def test_attrs (self ):
556
+ df = pd .DataFrame ({"A" : [2 , 3 ]})
557
+ assert df .attrs == {}
558
+ df .attrs ["version" ] = 1
559
+
560
+ result = df .rename (columns = str )
561
+ assert result .attrs == {"version" : 1 }
Original file line number Diff line number Diff line change @@ -512,6 +512,13 @@ def test_integer_series_size(self):
512
512
s = Series (range (9 ), dtype = "Int64" )
513
513
assert s .size == 9
514
514
515
+ def test_attrs (self ):
516
+ s = pd .Series ([0 , 1 ], name = "abc" )
517
+ assert s .attrs == {}
518
+ s .attrs ["version" ] = 1
519
+ result = s + 1
520
+ assert result .attrs == {"version" : 1 }
521
+
515
522
516
523
class TestCategoricalSeries :
517
524
@pytest .mark .parametrize (
You can’t perform that action at this time.
0 commit comments