数据类型操作:
- 增加、重排:重新索引
.reindex()
- 删除:drop
增加、重排
.reindex(index=None, columns=None, …)
参数 | 说明 |
---|---|
index, columns |
新的行列自定义索引 |
fill_value |
重新索引中,用于填充缺失位置(NaN )的值 |
method |
填充方法, ffill当前值向前填充,bfill向后填充 |
limit |
最大填充量 |
copy |
默认True,生成新的对象,False时,新旧相等不复制 |
索引类型:Index类型
Index对象是不可修改类型(一维)
常用操作
方法 | 说明 |
---|---|
.append(idx) |
连接另一个Index对象,产生新的Index对象 |
.diff(idx) |
计算差集,产生新的Index对象 |
.intersection(idx) |
计算交集 |
.union(idx) |
计算并集 |
.delete(loc) |
删除loc位置处的元素并生成一个新的index对象 |
.insert(loc,e) |
在loc位置增加一个元素e并生成一个新的index对象 |
删除
.drop()
能够删除Series和DataFrame指定行或列索引
运算法则:
- 算术运算:算术运算根据行列索引,补齐后运算,运算默认产生浮点数。补齐时缺项填充NaN (空值)
- 广播运算:维度不同时的运算——二维和一维、一维和零维间
- 比较运算:比较运算只能比较相同索引的元素,不进行补齐
采用+ ‐ * /符号进行的二元运算产生新的对象
采用> < >= <= == !=等符号进行的二元运算产生布尔对象
算术运算:
Out(b):
one two
a 1.0 9
b 2.0 8
c 3.0 7
d NaN 6
Out(c):
one two
a 1 9
b 2 8
c 3 7
d 4 6
Out(b+c):
one two
a 2.0 18
b 4.0 16
c 6.0 14
d NaN 12
算术运算的方法形式的运算
方法 | 说明 |
---|---|
.add(d, **argws) |
类型间加法运算,可选参数 |
.sub(d, **argws) |
类型间减法运算,可选参数 |
.mul(d, **argws) |
类型间乘法运算,可选参数 |
.div(d, **argws) |
类型间除法运算,可选参数 |
print(b.add(c, fill_value=100))
out:
one two
a 2.0 18
b 4.0 16
c 6.0 14
d 104.0 12
# fill_value参数替代NaN,替代后参与运算
# 100+4=104
维度不同的运算:
a = pd.Series([1,2,3,4,5])
print(a-10)
Out:
0 -9
1 -8
2 -7
3 -6
4 -5
dtype: int64
b = pd.DataFrame(np.arange(20).reshape(4,5))
a = pd.Series([1,2,3,4])
print(b-a)
Out:
0 1 2 3 4
0 -1.0 -1.0 -1.0 -1.0 NaN
1 4.0 4.0 4.0 4.0 NaN
2 9.0 9.0 9.0 9.0 NaN
3 14.0 14.0 14.0 14.0 NaN
b.sub(a,axis=0)
Out:
0 1 2 3 4
0 -1 0 1 2 3
1 3 4 5 6 7
2 7 8 9 10 11
3 11 12 13 14 15