使用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比较2个xml内容的方法
May 11 Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
Python求出0~100以内的所有素数
Jan 23 Python
Python实现的tcp端口检测操作示例
Jul 24 Python
python使用selenium实现批量文件下载
Mar 11 Python
python 实现识别图片上的数字
Jul 30 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
Python Numpy库常见用法入门教程
Jan 16 Python
简单了解django文件下载方式
Feb 10 Python
Python3爬虫中关于中文分词的详解
Jul 29 Python
浅谈matplotlib默认字体设置探索
Feb 03 Python
python中使用asyncio实现异步IO实例分析
Feb 26 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对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
node.js中express-session配置项详解
2017/05/31 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
深入讲解Java编程中类的生命周期
2016/02/05 Python
Python中标准模块importlib详解
2017/04/16 Python
Flask数据库迁移简单介绍
2017/10/24 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
世界上最大的罕见唱片、CD和音乐纪念品网上商店:991.com
2018/05/03 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
应届电子商务毕业自荐书范文
2014/02/11 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
80后婚前协议书范本
2014/10/24 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS
python可视化之颜色映射详解
2021/09/15 Python
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技