Pandas Series
创建
- 通过列表创建
si = pd.Series([1, 2, 3, 4])
- 通过
np.arange()
创建
si = pd.Series(np.arange(8))
- 通过对象创建
si = pd.Series({'a': 1, 'b': 2, 'c': 3})
属性
- 查看Series的values
si.values # array([1, 2, 3])
- 查看Series的index
si.index # Index(['1', '2', '3'], dtype='object')
方法
获取元素
si = pd.Series([1, 2, 3], index=['A', 'B', 'C'])
si['A'] # 1
si[0] # 1
对值过滤
si = pd.Series([1, 2, 3], index=['A', 'B', 'C'])
si[si > 1]
# B 2
# C 3
重置编号
Series默认编号为int类型的数字,我们可以重置Series的编号
- 在创建时重置
si = pd.Series([1, 2, 3], index=['A', 'B', 'C'])
# A 1
# B 2
# C 3
- 通过
reindex()
方法重置
reindex()
方法接收一个新的 index
列表,用于替换原来的 index
,如果新的 index
包含原来的 index
没有的元素则新增的index元素默认填充为 NaN
,可以通过指定参数 fill_value
改变默认的值。
si = pd.Series([1, 2, 3])
si.reindex(index=['A', 'B', 'C', 'D', 'E'])
# A NaN
# B NaN
# C NaN
# D NaN
# E NaN
# dtype: float64
s1 = pd.Series([1, 2, 3])
s1.reindex(index=['A', 2, 'C', 'D', 'E'], fill_value=0)
# A 0
# B 3
# C 0
# D 0
# E 0
# dtype: int64
内插或填充 method
obj1=pd.Series(range(3), index=['a', 'c', 'e'])
print(obj1.reindex(['a', 'b', 'c', 'd', 'e'], method='pad'))
# a 0
# b 0
# c 1
# d 1
# e 2
# dtype: int64
ffill
或 pad
: 前向(或进位)填充 bfill
或 backfill
: 后向(或进位)填充
转换为字典
Series可以通过 to_dict()
转换为一个Python字典:
si = pd.Series([1, 2, 3], index=['A', 'B', 'C'])
si.to_dict()
NaN
判断NaN
判断NaN,Series判断NaN有两个方法 isna()
和 notna()
:
-
isna()
会对Series的每个元素的值进行判断,如果是NaN则为True
,否则为False
。 -
notna()
会对Series的每个元素的值进行判断,如果是NaN则为False
,否则为True
si = pd.Series([1, 2, 3, np.nan], index=['A', 'B', 'C', 'D'])
si.isna()
# A False
# B False
# C False
# D True
# dtype: bool
删除NaN
si.dropna()
填充NaN项
si.fillna(value)