pandas复习之dataframe
创建dataframe的三种方式
1.数组转化
a=np.arange(0,12).reshape(3,4)
index=pd.Index(data=['一','二','三'])
pd.DataFrame(a,index=['一','二','三'],columns=[1,2,3,4])
2.字典转化
data={"年龄":[25,80,20],
"性别":['男','女','女']}
index=pd.Index(data=['马克','白月魁','冉冰'],name='人物')
a=pd.DataFrame(data=data,index=index)
a
3.多维数组转化
data=[[25,'男'],
[80,'女'],
[20,'女']]
index=pd.Index(data=['马克','白月魁','冉冰'],name='灵笼')
columns=['年龄','性别']
df=pd.DataFrame(data=data,index=index,columns=columns)
df
索引和切片
df['年龄']
df.loc['马克']
df.loc['马克','性别'] # loc 显示索引
df.iloc[0,1] # iloc 隐式索引
行列增删改
df.loc['夏豆']=[16,'女'] #增加行
df
df['位置']=['灯塔','灯塔','地面','地面'] #增加列
df
df['血型']=['a','ab','b','o']
df
df.drop('血型',axis=1) #删除列
np.where的用法
df['sex']=np.where(df.性别=='男',1,0)
df
添加新列
df.assign(新列=np.where(df.年龄>=40,'老年','青年'))
df['年龄'].astype('float64') # 更改整列的数据类型
表合并方式
a=np.arange(0,12).reshape(3,4)
index=pd.Index(data=['一','二','三'],name='aaa')
b=pd.DataFrame(a,index=index,columns=[1,2,3,4])
b
c=np.arange(12,24).reshape(3,4)
index=pd.Index(data=['一','二','三'],name='aaa')
d=pd.DataFrame(c,index=index,columns=[5,6,7,8])
d
b.append(d) # append 竖着加
pd.concat([b,d],axis=1) # concat([b,d],axis=0) 竖着加 concat([b,d],axis=1) 横着加
pd.merge(b,d,how='left',left_on='aaa',right_on='aaa')