相关文章推荐
飘逸的饭卡  ·  dataframe split ...·  2 月前    · 
想出国的拐杖  ·  python dataframe ...·  2 月前    · 
健壮的皮带  ·  python DataFrame循环读取 ...·  2 月前    · 
深情的爆米花  ·  azure-cognitiveservice ...·  1 年前    · 
爱看书的汽水  ·  java ...·  2 年前    · 

本文总结了平时对 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
data<-read.csv(‘data.csv’,col.names = c(‘id’,’sex’,’numbers’),stringsAsFactors=FALSE),stringsAsFactors=FALSE,不将字符串设置为因子。
as.numeric, as.str 等可以直接改变属性。
				
pandas为DataFrame格式数据添加方法非常简单,只需要新建一个索引,再为其赋值即可。 以下总结了5种常见添加方法。 首先,创建一个DataFrame结构数据,作为数据举例。 import pandas as pd # 创建一个DataFrame结构数据 data = {'a': ['a0', 'a1', 'a2'], 'b': ['b0', 'b1', 'b2']} df = pd.DataFrame(data) print('举例数据情况:\n', df) 3、根据现有计算生成新的 dataframe 根据某的值生成新的 df2[‘是否逾期’]=df2.apply(lambda x:0 if x.应付日期>today_time else 1,axis=1) df2[‘是否到期90天’]=(today_time -
在Pandas的DataFrame添加一行或者一添加行有df.loc[]以及df.append()这两种方法添加有df[]和df.insert()两种方法, 下面对这几种方法的使用进行简单介绍。 一、添加添加一行,采用loc[]方法 # 构造一个空的dataframe import pandas as pd df = pd.DataFrame(columns=['name','number']) # 采用.loc的方法进行 df.loc[0]=['cat', 3] # 其中loc[
2、使用apply()函数进行操作 applly(A, axis=0/1)A处可放判断条件以及函数,axis=0表示在行的方向操作,axis=1表示在的方向上操作(即增加) def get_wendu_type(x): if x["bWendu"] &...
通常,您可能希望在 Pandas DataFrame 中插入一个新。幸运的是,使用 pandasinsert()函数很容易做到这一点,该函数使用以下语法: insert(loc, column, value, allow_duplicates=False) loc:插入的索引。第一是 0。 column:赋予新的名称。 value:新的值数组。 allow_duplicates:是否允许新列名匹配现有列名。默认值为假。 本教程展示了如何在实践中使用此功能的几个示例。...