使用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个实例
Apr 10 Python
详解Python当中的字符串和编码
Apr 25 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
python批量赋值操作实例
Oct 22 Python
python将一组数分成每3个一组的实例
Nov 14 Python
对Python Pexpect 模块的使用说明详解
Feb 14 Python
python多进程并行代码实例
Sep 30 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
Python3标准库之dbm UNIX键-值数据库问题
Mar 24 Python
3种适用于Python的疯狂秘密武器及原因解析
Apr 29 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
May 16 Python
Python爬虫实现百度翻译功能过程详解
May 29 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+MySQL 制作简单的留言本
2009/11/02 PHP
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
PHP速成大法
2015/01/30 PHP
php实现cookie加密的方法
2015/03/10 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
广告切换效果(缓动切换)
2009/05/27 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
vue webpack重写cookie路径的方法
2019/07/10 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
用Python制作检测Linux运行信息的工具的教程
2015/04/01 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
python实现五子棋游戏
2019/06/18 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
Python常用断言函数实例汇总
2020/11/30 Python
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
竞选班长演讲稿
2013/12/30 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
党员批评与自我批评
2014/10/15 职场文书
比赛主持人开场白
2015/05/29 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript