使用Python向DataFrame中指定位置添加一列或多列的方法


Posted in Python onJanuary 29, 2019

对于这个问题,相信很多人都会很困惑,本篇文章将会给大家介绍一种非常简单的方式向DataFrame中任意指定的位置添加一列。

在此之前或许有不少读者已经了解了最普通的添加一列的方式,如下:

import pandas as pd
 
feature = pd.read_csv("C://Users//Machenike//Desktop//xzw//lr_train_data.txt", delimiter="\t", header=None, usecols=[0, 1])
feature.columns = ["a","b"]
print(feature.head())
feature['c']='1'
print(feature.head())

这种添加方式得到的结果如下:

a     b
0 4.459256 8.225418
1 0.043276 6.307400
2 6.997162 9.313393
3 4.754832 9.260378
4 8.661904 9.767977
     a     b c
0 4.459256 8.225418 1
1 0.043276 6.307400 1
2 6.997162 9.313393 1
3 4.754832 9.260378 1
4 8.661904 9.767977 1

同样的也会有人想到concat()函数(关于concat()函数的更多介绍,可以参考我的另外一篇博客《在Pandas中DataFrame数据合并、连接(concat、merge、join)的实例》),如下:

import pandas as pd
 
feature = pd.read_csv("C://Users//Machenike//Desktop//xzw//lr_train_data.txt", delimiter="\t", header=None, usecols=[0, 1])
feature.columns = ["a","b"]
print(feature.head())
feature = pd.concat([feature, pd.DataFrame(columns=list('c'))])
print(feature.head())

利用concat()函数添加的结果如下:

a     b
0 4.459256 8.225418
1 0.043276 6.307400
2 6.997162 9.313393
3 4.754832 9.260378
4 8.661904 9.767977
     a     b  c
0 4.459256 8.225418 NaN
1 0.043276 6.307400 NaN
2 6.997162 9.313393 NaN
3 4.754832 9.260378 NaN
4 8.661904 9.767977 NaN

上述两种方法添加一列存在一个弊端,那就是只能在DataFrame的末尾即最后一列添加。但是在有些情况下,我们需要在DataFrame的第一列或中间列位置添加新的一列,那么,有没有一种方法可以指定位置添加一列呢?答案是肯定的,这就是本文一开始所说的那种及其简单的方法。

如下:

import pandas as pd
 
feature = pd.read_csv("C://Users//Machenike//Desktop//xzw//lr_train_data.txt", delimiter="\t", header=None, usecols=[0, 1])
feature.columns = ["a","b"]
print(feature.head())
feature = feature.reindex(columns=list('cab'), fill_value=1)
print(feature.head())

上面代码中的使用了reindex()方法,reindex()方法可以添加一列或多列数据,并且可以指定列的位置,也可以对原先存在的列进行重排。方法中的columns属性控制着列的位置,c是添加的一列,其位于a和b前面,这说明c列是新数据框的第一列,fill_value属性指定的是添加一列的值,其结果如下:

a     b
0 4.459256 8.225418
1 0.043276 6.307400
2 6.997162 9.313393
3 4.754832 9.260378
4 8.661904 9.767977
  c     a     b
0 1 4.459256 8.225418
1 1 0.043276 6.307400
2 1 6.997162 9.313393
3 1 4.754832 9.260378
4 1 8.661904 9.767977

同时,reindex()方法也可以同时添加多列(其实上面的concat()函数也可以添加多列,添加方式与reindex()一样),如下:

import pandas as pd
 
feature = pd.read_csv("C://Users//Machenike//Desktop//xzw//lr_train_data.txt", delimiter="\t", header=None, usecols=[0, 1])
feature.columns = ["a","b"]
print(feature.head())
feature = feature.reindex(columns=list('cabd'), fill_value=1)
print(feature.head())

我们添加了c、d两列,结果如下:

a     b
0 4.459256 8.225418
1 0.043276 6.307400
2 6.997162 9.313393
3 4.754832 9.260378
4 8.661904 9.767977
  c     a     b d
0 1 4.459256 8.225418 1
1 1 0.043276 6.307400 1
2 1 6.997162 9.313393 1
3 1 4.754832 9.260378 1
4 1 8.661904 9.767977 1

你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。

以上这篇使用Python向DataFrame中指定位置添加一列或多列的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
PyCharm使用教程之搭建Python开发环境
Jun 07 Python
python 数据的清理行为实例详解
Jul 12 Python
老生常谈python中的重载
Nov 11 Python
修改python plot折线图的坐标轴刻度方法
Dec 13 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
python gdal安装与简单使用
Aug 01 Python
Django中提示消息messages的设置方式
Nov 15 Python
重写django的model下的objects模型管理器方式
May 15 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
Jun 23 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
Python Pexpect库的简单使用方法
Jan 29 #Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
Jan 29 #Python
对python numpy.array插入一行或一列的方法详解
Jan 29 #Python
对python中list的拷贝与numpy的array的拷贝详解
Jan 29 #Python
10 分钟快速入门 Python3的教程
Jan 29 #Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
Jan 29 #Python
解决python中画图时x,y轴名称出现中文乱码的问题
Jan 29 #Python
You might like
PHP常用代码
2006/11/23 PHP
默默简单的写了一个模板引擎
2007/01/02 PHP
php用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
PHPExcel中的一些常用方法汇总
2015/01/23 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
继续学习javascript闭包
2015/12/03 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
2017/01/04 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
jQuery plugin animsition使用小结
2017/09/14 jQuery
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
[29:16]完美世界DOTA2联赛决赛日 Inki vs LBZS 第三场 11.08
2020/11/10 DOTA
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
大学生简历的个人自我评价
2013/12/04 职场文书
公益活动策划方案
2014/01/09 职场文书
工作表现评语
2014/01/19 职场文书
商场促销活动总结
2014/07/10 职场文书
高中生学习计划书
2014/09/15 职场文书
喋血孤城观后感
2015/06/08 职场文书