使用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操作摄像头截图实现远程监控的例子
Mar 25 Python
详解Python的迭代器、生成器以及相关的itertools包
Apr 02 Python
简单介绍Python2.x版本中的cmp()方法的使用
May 20 Python
Python使用面向对象方式创建线程实现12306售票系统
Dec 24 Python
python魔法方法-自定义序列详解
Jul 21 Python
python实现获取Ip归属地等信息
Aug 27 Python
Python并发编程协程(Coroutine)之Gevent详解
Dec 27 Python
python smtplib模块自动收发邮件功能(二)
May 22 Python
python中的常量和变量代码详解
Jul 25 Python
2020版Python学习路线图(附学习资料)
Sep 15 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
用Python监控你的朋友都在浏览哪些网站?
May 27 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 COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
PHP多进程简单实例小结
2019/11/09 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
JMenuTab简单使用说明
2008/03/13 Javascript
asp批量修改记录的代码
2008/06/25 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
一次微信小程序内地图的使用实战记录
2019/09/09 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python实现机器人卡牌
2019/10/06 Python
公认8个效率最高的爬虫框架
2020/07/28 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
校领导推荐信
2013/11/01 职场文书
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
计生专干事迹
2014/05/28 职场文书
服务理念标语
2014/06/18 职场文书
计划生育标语
2014/06/23 职场文书
加强机关作风建设心得体会
2014/10/22 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
地震慰问信
2015/02/14 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS