使用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下使用Psyco模块优化运行速度
Apr 05 Python
Python遍历目录的4种方法实例介绍
Apr 13 Python
Python Flask基础教程示例代码
Feb 07 Python
python实现画一颗树和一片森林
Jun 25 Python
python绘制多个曲线的折线图
Mar 23 Python
django模板结构优化的方法
Feb 28 Python
Python中Numpy ndarray的使用详解
May 24 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
Django ValuesQuerySet转json方式
Mar 16 Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 Python
基于python的opencv图像处理实现对斑马线的检测示例
Nov 29 Python
python基础之while循环语句的使用
Apr 20 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
2010/06/19 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
基于jQuery实现中英文切换导航条效果
2016/09/18 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
django 删除数据库表后重新同步的方法
2018/05/27 Python
Python3使用SMTP发送带附件邮件
2020/06/16 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
abstract是什么意思
2012/02/12 面试题
《愚公移山》教学反思
2014/02/20 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
五年级作文之想象作文
2019/10/30 职场文书
MySQL的join buffer原理
2021/04/29 MySQL
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android
SpringBoot详解执行过程
2022/07/15 Java/Android