Pandas之数组增删改查
1. 插入新的列或行
插入新行
没有专门用来插入行的方法,可以把待插入的行当作一个新的表,然后在纵轴上进行拼接。
插入新列
- 方法一:使用df.insert()
例如:在第二列后面插入一列并命名为“商品类别”
df.insert(2, "商品类别", ["value01", "value02", "value03", "value04"])
- 方法二:直接以索引的方式进行列的插入
df["商品类别"] = ["value01", "value02", "value03", "value04"]
2. 删除行和列
删除行
- 方法一:使用df.drop(),需要参数axis=0
例:删除第1行和第二行
df.drop(df.index[[0,1]], axis=0)
#或
df.drop(["第一行名", "第二行名"],axis=0)
# 或直接将行名传给index参数,这时候就不需要axis参数
df.drop(index = ["第一行名", "第二行名"])
- 方法二:直接筛选
例:直接删除年龄大于40的行,并不删除,而是将相反部分取出来
df[df["年龄] < 40 ]
删除列
使用df.drop()
df.drop(df.columns[[0,1]],axis=1)
# 或
df.drop(["col1", "col2"], axis = 1)
# 或
df.drop(columns = ["col1", "col2"])
3. 修改列名和数值
修改列名
例:原列名[“cola”,“colb”,"colc],改为[“col1”,“col2”,“col3”]
- 方法一:修改columns属性
df.columns = ["col1","col2","col3"]
- 方法二:renmae方法、columns参数
# 好处:可以用于修改特定列
df.rename(columns = {"cola":"col1", "colb":"col2", "colc":"col3"})
修改数值
例:把233替换成666
# 一对一替换
df.replace(233,666)
# 多对一替换
df.replace([233,223], 666)
# 多对多替换
df.replace({233:6, 223:666})
4. 索引与查找
索引
- 行索引:按列名或使用iloc索引
- 列索引:使用loc按行名或使用iloc按序号索引
- 按条件索引
- 布尔索引+一般索引
例:
# 先筛年龄小于40的数据,再列出订单编号和年龄两列
df[df["年龄"] < 40][["订单编号", "年龄"]]
- 切片索引+普通索引
例:
# 使用df.ix()
# 先切片索引前三行,列使用普通索引
df.ix[0:3, ["客户姓名", "唯一识别码]]