相信有很多人收这个问题的困扰,如果你想一次性在pandas.DataFrame里添加几列,或者在指定的位置添加一列,都会很苦恼找不到简便的方法;可以用到的函数有df.reindex, pd.concat

我们来看一个例子:

df 是一个DataFrame, 如果你只想在df的后面添加一列,可以用下面的方法:

但是如果你想一次性添加两列级以上,你可能会用通样的办法

df[['D','E']] == None ,结果报错如下:

所以接下来我想介绍两种认为比较简便的方法

(1)第一个方法是利用pd.concat 在DataFrame后面添加两列,这种方法的缺点是不能指定位置

pd.concat([df, pd.DataFrame(columns=list('DE'))])

(2)第二种方法是利用 reindex来重排和增加列名df.reindex(columns=list('ABCDE'))

这种方法,你可以改变各列的相对位置,且保留原始列的数值,比如df.reindex(columns=list('BCADE'))

reindex 还有 fill_value 选项,可以填充NaN,例子如下df.reindex(columns=list('ABCDE'), fill_value=0)

  当然这里举的例子比较简单,在实际运用中,列名可能都比较长,都敲出来肯定不方便,所以我们需要更强大的方法,运用到 list.insert的方法list.insert(index, obj)

参数
index -- 对象obj需要插入的索引位置。

obj -- 要插入列表中的对象。
先获取原列名集合, 赋值给新变量(这个很重要,具体原因我也不知道为啥), 然后 insert

col_name = df.columns.tolist()
col_name.insert(1,'D')
df.reindex(columns=col_name)
Out[92]:
A D B C
01 NaNNoneNone
13 NaNNoneNone
或者不用数字索引,直接在某列前面或后面插入,利用 list.index的方法
col_name = df.columns.tolist()
col_name.insert(col_name.index('B'),'D')# 在 B 列前面插入
df.reindex(columns=col_name)
Out[93]:
A D B C
01 NaNNoneNone
13 NaNNoneNone
col_name = df.columns.tolist()
col_name.insert(col_name.index('B')+1,'D') # 在 B 列后面插入
df.reindex(columns=col_name)
Out[96]:
A B D C
01None NaNNone
13None NaNNone

转自:http://www.th7.cn/Program/Python/201708/1216328.shtml

pandas dataframe在指定的位置添加一列, 或者一次性添加几列,re的更多相关文章

  1. 更改 pandas dataframe 中两列的位置

    更改 pandas dataframe 中两列的位置: 把其中的某列移到第一列的位置. 原来的 df 是: df = pd.read_csv('I:/Papers/consumer/codeandpa ...

  2. pandas DataFrame的新增行列,修改、删除、筛选、判断元素以及转置操作

    1)指定行索引和列索引标签 index 属性可以指定 DataFrame 结构中的索引数组,  columns 属性可以指定包含列名称的行, 而使用 name 属性,通过对一个 DataFrame 实 ...

  3. Lesson4——Pandas DataFrame结构

    pandas目录 思维导图 1 简介 DataFrame 是 Pandas 的重要数据结构之一,也是在使用 Pandas 进行数据分析过程中最常用的结构之一. 2 认识DataFrame结构 Data ...

  4. pandas.DataFrame的pivot()和unstack()实现行转列

    示例: 有如下表需要进行行转列: 代码如下: # -*- coding:utf-8 -*- import pandas as pd import MySQLdb from warnings impor ...

  5. pandas.DataFrame

    1.可以使用单个列表或列表列表创建数据帧(DataFrame). 单个列表 import pandas as pd data = [1,2,3,4,5] df = pd.DataFrame(data) ...

  6. Pandas Dataframe增、删、改、查、去重、抽样基本操作

    总括 pandas的索引函数主要有三种: loc 标签索引,行和列的名称 iloc 整型索引(绝对位置索引),绝对意义上的几行几列,起始索引为0 ix 是 iloc 和 loc的合体 at是loc的快 ...

  7. 【跟着stackoverflow学Pandas】add one row in a pandas.DataFrame -DataFrame添加行

    最近做一个系列博客,跟着stackoverflow学Pandas. 以 pandas作为关键词,在stackoverflow中进行搜索,随后安照 votes 数目进行排序: https://stack ...

  8. pandas DataFrame的创建方法

    pandas DataFrame的增删查改总结系列文章: pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pand ...

  9. pandas.DataFrame——pd数据框的简单认识、存csv文件

    接着前天的豆瓣书单信息爬取,这一篇文章看一下利用pandas完成对数据的存储. 回想一下我们当时在最后得到了六个列表:img_urls, titles, ratings, authors, detai ...

随机推荐

  1. gbdt调参的小结

    关键部分转自http://www.cnblogs.com/pinard/p/6143927.html 第一次知道网格搜索这个方法,不知道在工业中是不是用这种方式 1.首先从步长和迭代次数入手,选择一个 ...

  2. JQuery点击标题实现div的收缩

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  3. mysql 及练习题

    if() 函数的用法 IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false, mysql,'女','男') as sex fr ...

  4. XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem L. Canonical duel

    题目:Problem L. Canonical duelInput file: standard inputOutput file: standard outputTime limit: 2 seco ...

  5. UVALive - 4671 K-neighbor substrings (FFT+哈希)

    题意:海明距离的定义:两个相同长度的字符串中不同的字符数.现给出母串A和模式串B,求A中有多少与B海明距离<=k的不同子串 分析:将字符a视作1,b视作0.则A与B中都是a的位置乘积是1.现将B ...

  6. Windows MFC控件消息编程

    1. Progress Bar Control Messages    PBM_DELTAPOS    PBM_GETPOS    PBM_GETRANGE    PBM_SETBARCOLOR    ...

  7. Promise原理剖析

    传统的异步回调编程最大的缺陷是:回调地狱,由于业务逻辑非常复杂,代码串行请求好几层:并行请求以前也要通过引用step.async库实现.现在ES6推出了Promise,通过Promise的链式调用可以 ...

  8. [Linux 004]——用户和用户组以及 Linux 权限管理(二)

    到权限了.前面讲到了 Linux 中的用户和用户主管理,其实它们的本质(或者用户和用户组出现的初衷)都是方便权限管理.权限管理对于计算机的重要性不言而喻,权限让每个用户能够安安心心的使用计算机,而不用 ...

  9. 20145302张薇《Java程序设计》第三周学习总结

    20145302张薇<Java程序设计>第三周学习总结 教材学习内容总结 第四章 定义类 一个原始码中有多少类就会有多少.class文档. 标准类 使用java.util.scanner让 ...

  10. 20145312 《Java程序设计》第七周学习总结

    20145312 <Java程序设计>第七周学习总结 学习笔记 Chapter 13时间与日期 13.1 认识时间与日期 13.1.1 时间的度量 格林威治标准时间 世界时:观测远方星体跨 ...