I have the following code.
s2 = pd.Series([100,\"PYTHON\",\"Soochow\",\"Qiwsir\"],
index=[\"mark\",\"title\",\"university\",\"name\"])
s2.m
You are confusing attributes with series indices.
The syntax s2.xyz = 100
first looks for xyz
in the series index and overwrites it if it exists.
If it does not exist, it adds a new attribute to the series.
How to add an attribute
if 'price' not in s2:
s2.price = 100
You should not add attributes which conflict with indices; this is asking for trouble given the similar syntax permitted for access.
How to add an element to series
In order to add an element to the series with an index, use pd.Series.loc
:
s2.loc['price'] = 100
How to tell the difference
Run s2.__dict__
. You will find:
{'_data': SingleBlockManager
Items: Index(['mark', 'title', 'university', 'name'], dtype='object')
ObjectBlock: 4 dtype: object,
'_index': Index(['mark', 'title', 'university', 'name'], dtype='object'),
'_item_cache': {},
'_name': None,
'_subtyp': 'series',
'is_copy': None,
'price': '100'}
It is clear that price
has been added as an attribute, not as an index.