使用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基础教程之Filter使用方法
Jan 17 Python
Python 判断是否为质数或素数的实例
Oct 30 Python
完美解决python中ndarray 默认用科学计数法显示的问题
Jul 14 Python
python使用Turtle库绘制动态钟表
Nov 19 Python
matplotlib.pyplot绘图显示控制方法
Jan 15 Python
Python3实现的简单三级菜单功能示例
Mar 12 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
Django框架表单操作实例分析
Nov 04 Python
nginx+uwsgi+django环境搭建的方法步骤
Nov 25 Python
Django中ORM找出内容不为空的数据实例
May 20 Python
python音频处理的示例详解
Dec 23 Python
Python3中对json格式数据的分析处理
Jan 28 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 APC缓存配置、使用详解
2014/03/06 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
javascript动画浅析
2012/08/30 Javascript
javascript垃圾收集机制与内存泄漏详细解析
2013/11/11 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
jquery实现华丽的可折角广告代码
2015/09/02 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
浅析Visual Studio Code断点调试Vue
2018/02/27 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
Python编程之序列操作实例详解
2017/07/22 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
python的scipy实现插值的示例代码
2019/11/12 Python
python将时分秒转换成秒的实例
2019/12/07 Python
Python绘制组合图的示例
2020/09/18 Python
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
面向对象编程的优势是什么
2015/12/17 面试题
应届毕业生求职自荐书
2014/01/03 职场文书
给同事的道歉信
2014/01/11 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
竞聘书模板
2014/03/31 职场文书
项目合作协议书
2014/04/16 职场文书
企业党员个人自我评价
2014/09/20 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python
Win10 最新稳定版本 21H2开始推送
2022/04/19 数码科技