pandas两个表格_使用Pandas处理excel文件-(7)删除、增添行列或标签

段丞博:使用Pandas处理excel文件-(1)动机和资源

段丞博:使用Pandas处理excel文件-(2)DataFrame和相关概念

段丞博:使用Pandas处理excel文件-(3)从Python默认数据类型中产生DataFrame

段丞博:使用Pandas处理excel文件-(4)读写excel表格

段丞博:使用Pandas处理excel文件-(5)访问DataFrame中的数据

段丞博:使用Pandas处理excel文件-(6)筛选DataFrame中满足特定条件的数据

段丞博:使用Pandas处理excel文件-(7)删除、增添行列或标签

段丞博:使用Pandas处理excel文件-(8)pandas中处理日期的四种基本数据类型介绍

段丞博:使用Pandas处理excel文件-(9)日期的处理

段丞博:使用Pandas处理excel文件-(10)数据处理

对于excel表格的操作中,增添删减、修改内容是基本的功能,这次介绍一下如何对于DataFrame进行相同的操作。假设有如下的表格内容:

829a2237643ec94372ddb243c3e3e587.png

删除行列

如果要删除某些行列,可以用drop函数实现。drop函数的接口如下:

drop(labels=None, axis=0, index=None, columns=None,  inplace=False) 
  1. label:字符串或者是字符串构成的列表,代表要删除的行或者列的标签,具体行列由axis指定
  2. axis: 如果axis=0,label中的标签为index,否则为columns
  3. index/columns:也可直接用这两个参数指定删除的行列
  4. inplace: 是否修改原DataFrame,pandas默认情况下是不会修改原表格

为了说明该函数的用法,下面的图片中分别用两种方法删除表格中第二行和第三列。第一种利用labels和axis两个参数。

3d09253b3d60907e4bf1e4689a4e1efc.png

也可以利用index删除行,利用columns删除列。

af513912537de282744edb9464aa0f3f.png

除了按照行列的标签名字删除,还有一种按照序号删除的方式。例如刚才删除'YY'列,相当于删除第三列(python计数中为2),因此也可以按下面的方式删除。

732aca6c94ed8179b6318eb5928b0dfb.png

它的含义也是明确的,即使用df的columns的部分内容作为labels的参数输入。

如果要删除原表格中的行列,那么仅需要让inplace参数为True即可,当然也可以用del直接删除表格中的列并生效,如下。

8065ddd3e7be68f42e6fcb8dbeb0352b.png

添加行列

首先看如何添加行,这里的“添加”就是在表格的末尾续上一行。一个正规的含义明确的操作是用append方法来实现。但是如果可以保证新添加的行标签并不在原来的表格中,那么也可以用loc、at、set_value来实现。不过需要注意的是,和删除操作不同,添加操作会直接修改原表格,以loc和at为列演示如下。

f5b4ff33f20d5f47687c25004d65433e.png

000bec084b492e05c1eb03ecf8d5d3a4.png

append的方法相对灵活,可以接收的参数类型比较多,用起来需要注意可能对表格带来的不可预期的改变,例如我们在表格后面可以追加一个列表。

c3d00575ecbf1186dcca58bb4a7a973e.png

或者追加一个Series,

6e2f79517188a063c367adcf2c3626a8.png

行为完全不一样,也并不是特别符合直觉,所以append函数是不会修改原来的表格的,使用时务必要仔细参考手册。这一点也是我非常不喜欢numpy和pandas中一些对我而言并不是自然的广播方式。

列的添加方式有两种,由于表格总是以列为主,所以可以像操作字典一样来添加列,即添加一个新的列标签即可。

b3aa8f33628840cec9dbfcf13d936659.png

也可以使用loc或者at实现这样的效果。

c0063ff9689aa791172b5037d12d5b38.png

指定的位置添加列

在表格中新添加一行和新添加一列的含义是不同的,在指定的位置添加新的列比添加行的意义要大,因为行总是可以通过排序,索引重拍,其具体位置并没有特别的价值。在Pandas中,在指定的位置添加列用到insert函数,方法很简单如下。

26ca066df4b026506e5699bee43b2e0b.png

第一参数为插入的位置,第二个插入列的标签名,第三个为插入的内容。

修改行列标签

如果想给某一行或者列重新起一个名字,那么就可以用rename函数。rename函数有三个参数:

index: 修改行标签名字的参量,传递一个字典,字典的键为旧名,值为新名;

columns: 与上相同,修改列的名字;

inplace: 是否要修改原表格。

使用方法如下,例如把列中"YY"改为小写。

dae03f629a3febeec58e9f75e4b768b0.png

总结

Pandas中对于表格行列的操作也非常灵活,因此会存在一些隐患,特别是那些无意的操作,但是又不报错,特别是各类广播,使用需要谨慎小心。有数值处理经验的朋友一定知道,数值处理中的错误很多表现为数组的形状出现了问题,广播是一种非常灵活但是要谨慎的操作。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值