DataFrame类型由共用相同索引的一组列组成
DataFrame是一个表格型的数据类型,每列值类型可以不同
DataFrame既有行索引、也有列索引
DataFrame常用于表达二维数据,但可以表达多维数据
DataFrame是二维带“标签”数组
创建:
• 二维ndarray对象
• 由一维ndarray、列表、字典、元组或Series构成的字典
• Series类型
• 其他的DataFrame类型
#从列表类型的字典创建
h={'one':[1,2,3,4],'two':[5,6,7,8]}
h1=pd.DataFrame(h,index=['a','b','c','c'])
one two
a 1 5
b 2 6
c 3 7
c 4 8
索引
自动列索引
e=pd.DataFrame(np.arange(10).reshape(2,5))
#print(e)
0 1 2 3 4
0 0 1 2 3 4
1 5 6 7 8 9
自定义索引
mm={'one':b,'two':c}
f=pd.DataFrame(mm)
#print(f)
one two
a 100 2.0
b 200 22.0
c 200 12.0
d 4 NaN
数据根据行列索引自动补齐
g=pd.DataFrame(mm,index=['b','c','d'],columns={'one','three'})
#print(g)
three one
b NaN 200
c NaN 200
d NaN 4
普通索引
h={'one':[1,2,3,4],'two':[5,6,7,8]}
h1=pd.DataFrame(h,index=['a','b','c','c'])
#print(h1)
#print(h1.two)
#print(h1.loc['a'])
one two
a 1 5
b 2 6
c 3 7
c 4 8
重排索引
.reindex()能够改变或重排Series和DataFrame索引
.reindex(index=None, columns=None, …)的参数说明
index, columns 新的行列自定义索引
fill_value 重新索引中,用于填充缺失位置的值
metho 填充方法, ffill当前值向前填充,bfill向后填充
limit 最大填充量
copy 默认True,生成新的对象,False时,新旧相等不复制
h2=pd.DataFrame(h,index=['a','b','c','d'])
h2=h2.reindex(index=['d','c','b','a'])
h2=h2.reindex(columns=['two','one'])
#print(h2)
two one
d 8 4
c 7 3
b 6 2
a 5 1
索引类型的常用方法
.append(idx) 连接另一个Index对象,产生新的Index对象
.diff(idx) 计算差集,产生新的Index对象
.intersection(idx) 计算交集
.union(idx) 计算并集
.delete(loc) 删除loc位置处的元素
.insert(loc,e) 在loc位置增加一个元素e
.drop() 能够删除Series和DataFrame指定行或列索引
运算
算术运算
算术运算根据行列索引,补齐后运算,运算默认产生浮点数
补齐时缺项填充NaN (空值)
二维和一维、一维和零维间为广播运算
采用+ ‐*/符号进行的二元运算产生新的对象
方法形式运算
.add(d, **argws) 类型间加法运算,可选参数
.sub(d, **argws) 类型间减法运算,可选参数
.mul(d, **argws) 类型间乘法运算,可选参数
.div(d, **argws) 型间加法运算,可选参数
fill_value参数替代NaN,替代后参与运算
a.dd(b,fill_value=0)-->a+b如果产生非数用0代替
不同维度间为广播运算,一维Series默认在轴1参与运算
使用运算方法可以令一维Series参与轴0运算
比较运算
比较运算只能比较相同索引的元素,不进行补齐
二维和一维、一维和零维间为广播运算
采用>< >= <= == !=等符号进行的二元运算产生布尔对象
同维度运算尺寸一致
不同维度,广播运算,默认在1轴
pandas2·——>DataFrame(创建、索引、运算)
最新推荐文章于 2022-11-06 21:18:18 发布