dataframe 新增列方法

  • Post author:
  • Post category:其他


一、准备数据

引入需用的包,并新建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

亲测可用

转载自:

版权声明:本文为博主原创文章,遵循

CC 4.0 BY-SA

版权协议,转载请附上原文出处链接和本声明。

链接:

https://blog.csdn.net/qq_35318838/article/details/102720553