DataFrame 新增列的五种方法

本文总结了平时对 pandas.DataFrame 进行新增列操作的五种方法:insert、reindex、loc、obj[‘col’]、concat,并用代码演示出来。

一、准备数据

引入需用的包,并新建DataFrame例子

in [1]: import pandas as pd
	 	import numpy as np
in [2]: data = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['a', 'b', 'c'])
in [3]: data
out[3]:
	 	a 	b 	c
	0 	1 	2 	3
	1 	4 	5 	6
	2 	7 	8 	9

二、insert 方法

使用 pandas 的 insert 方法,第一个参数指定插入列的位置,第二个参数指定插入列的列名,第三个参数指定插入列的数据,这个方法也是我比较推崇的。

in [4]: data.insert(data.shape[1], 'd', 0)
in [5]: data
out[5]:
		a 	b 	c 	d
	0 	1 	2 	3 	0
	1 	4 	5 	6 	0
	2 	7 	8 	9 	0

三、obj[‘col’] = value 方法

直接对 DataFrame 直接赋值即可

in [6]: data['d'] = 0
in [7]: data
out[7]:
	 	a 	b 	c 	d
	0 	1 	2 	3 	0
	1 	4 	5 	6 	0
	2 	7 	8 	9 	0

四、reindex 方法

使用 reindex 函数,还可以指定缺失值填充的值,不过缺点是要把原有的列名和新列名都加上,如果列名过多,那就比较麻烦了。

in [8]: data = data.reindex(columns=['a', 'b', 'c', 'd'], fill_value=0)
in [9]: data
out[9]:
		a 	b 	c 	d
	0 	1 	2 	3 	0
	1 	4 	5 	6 	0
	2 	7 	8 	9 	0

五、concat 方法

concat 方法是用来拼接数据的,在这里是利用拼接过程中新建一个包含新列名的空DataFrame,好处是可以同时新增多个列名。

in [10]: data = pd.concat([data, pd.DataFrame(columns=['d'])], sort=False)
in [11]: data
out[11]:
		a 		b 		c 		d
	0 	1.0 	2.0 	3.0 	NaN
	1 	4.0 	5.0 	6.0 	NaN
	2 	7.0 	8.0 	9.0 	NaN

六、loc 方法

loc 方法和 iloc 方法一样,可以索引 DataFrame 数据,一般是通过 data.loc[index, col] = value 来进行赋值,这里利用:来索引全部行再进行赋值。

in [12]: data.loc[:, 'd'] = 0
in [13]: data
out[13]:
	 	a 	b 	c 	d
	0 	1 	2 	3 	0
	1 	4 	5 	6 	0
	2 	7 	8 	9 	0
  • 117
    点赞
  • 441
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值