使用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中的socket模块使用代理实例
May 29 Python
python分割文件的常用方法
Nov 01 Python
Python中random模块生成随机数详解
Mar 10 Python
Python简单读取json文件功能示例
Nov 30 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
Jan 31 Python
对python3标准库httpclient的使用详解
Dec 18 Python
python3+selenium自动化测试框架详解
Mar 17 Python
在python中实现同行输入/接收多个数据的示例
Jul 20 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
在pycharm中实现删除bookmark
Feb 14 Python
基于Python绘制子图及子图刻度的变换等的问题
May 23 Python
Python实现随机生成迷宫并自动寻路
Jun 13 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
网页上facebook分享功能具体实现
2014/01/26 PHP
php中session使用示例
2014/03/29 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
Yii视图CGridView实现操作按钮定义地址示例
2016/07/14 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
JavaScript创建对象的七种方式(推荐)
2017/06/26 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
2015/11/09 Python
一文总结学习Python的14张思维导图
2017/10/17 Python
超简单使用Python换脸实例
2019/03/27 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
简单了解django orm中介模型
2019/07/30 Python
Python 3 判断2个字典相同
2019/08/06 Python
Python 下载及安装详细步骤
2019/11/04 Python
Python属性和内建属性实例解析
2020/01/14 Python
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
民政工作个人总结
2015/02/28 职场文书
律政俏佳人观后感
2015/06/09 职场文书
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL