使用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标准库内置函数complex介绍
Nov 25 Python
Python的Django框架中消息通知的计数器实现教程
Jun 13 Python
python开发简易版在线音乐播放器
Mar 03 Python
Python列表切片用法示例
Apr 19 Python
Java编程迭代地删除文件夹及其下的所有文件实例
Feb 10 Python
详解Python中的type和object
Aug 15 Python
Python socket非阻塞模块应用示例
Sep 12 Python
python数据类型可变不可变知识点总结
Mar 06 Python
python3中sorted函数里cmp参数改变详解
Mar 12 Python
Pytorch转tflite方式
May 25 Python
Django配置Bootstrap, js实现过程详解
Oct 13 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
php session处理的定制
2009/03/16 PHP
检测png图片是否完整的php代码
2010/09/06 PHP
PHP面向接口编程 耦合设计模式 简单范例
2011/03/23 PHP
PHP类继承 extends使用介绍
2014/01/14 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
$()JS小技巧
2007/07/21 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
2015/04/14 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
vue2.0 自定义日期时间过滤器
2017/06/07 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
在layui.use 中自定义 function 的正确方法
2019/09/16 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
浅谈function(函数)中的动态参数
2017/04/30 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
python2.7安装图文教程
2018/03/13 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
python实现斗地主分牌洗牌
2020/06/22 Python
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
慈善募捐倡议书
2015/04/27 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android