Series Object¶
Core Structure¶
1. Definition¶
A Series is a 1D labeled array:
import pandas as pd
s = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(type(s)) # <class 'pandas.core.series.Series'>
2. Components¶
print(s.values) # NumPy array [10 20 30]
print(s.index) # Index(['a', 'b', 'c'])
print(s.dtype) # dtype('int64')
3. vs NumPy Array¶
Series = Values (ndarray) + Index + Name
Construction¶
1. From List¶
s = pd.Series([1, 2, 3, 4])
print(s.index) # RangeIndex(0, 4)
2. From Dict¶
data = {'a': 10, 'b': 20, 'c': 30}
s = pd.Series(data)
3. From Scalar¶
s = pd.Series(5, index=['a', 'b', 'c'])
# a 5
# b 5
# c 5
Indexing¶
1. Label-based¶
s = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(s['a']) # 10
print(s[['a', 'c']]) # Multiple labels
2. Position-based¶
print(s.iloc[0]) # 10
print(s.iloc[0:2]) # First two
3. Boolean Indexing¶
print(s[s > 15]) # Elements > 15
Operations¶
1. Arithmetic¶
s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s2 = pd.Series([10, 20, 30], index=['a', 'b', 'd'])
result = s1 + s2
# Aligns on index, NaN for 'c' and 'd'
2. Methods¶
s = pd.Series([1, 2, 3, 4, 5])
print(s.mean()) # 3.0
print(s.std()) # 1.58
print(s.sum()) # 15
3. String Methods¶
s = pd.Series(['hello', 'world', 'pandas'])
print(s.str.upper())
print(s.str.len())