使用Python向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['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中指定位置添加一列或多列的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • pandas DataFrame实现几列数据合并成为新的一列方法

    问题描述 我有一个用于模型训练的DataFrame如下图所示: 其中的country.province.city.county四列其实是位置信息的不同层级,应该合成一列用于模型训练 方法: parent_teacher_data['address'] = parent_teacher_data['country']+parent_teacher_data['province']+parent_teacher_data['city']+parent_teacher_data['county'] 就

  • Python将DataFrame的某一列作为index的方法

    下面代码实现了将df中的column列作为index df.set_index(["Column"], inplace=True) 以上这篇Python将DataFrame的某一列作为index的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: 对Python中DataFrame按照行遍历的方法 使用DataFrame删除行和列的实例讲解 Python中的index()方法使用教程 Python中List.index()方法的使用

  • 用pandas中的DataFrame时选取行或列的方法

    如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.arange(3.)) data = DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz')) data['w'] #选择表格中的'w'列,使用类字典属性,返回的是Series类型 data.w #选择表格

  • python 给DataFrame增加index行名和columns列名的实现方法

    在工作中遇到需要对DataFrame加上列名和行名,不然会报错 开始的数据是这样的 需要的格式是这样的: 其实,需要做的就是添加行名和列名,下面开始操作下. # a是DataFrame格式的数据集 a.index.name = 'date' a.columns.name = 'code' 这样就可以修改过来. 以上这篇python 给DataFrame增加index行名和columns列名的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • pandas数据处理基础之筛选指定行或者指定列的数据

    pandas主要的两个数据结构是:series(相当于一行或一列数据机构)和DataFrame(相当于多行多列的一个表格数据机构). 本文为了方便理解会与excel或者sql操作行或列来进行联想类比 1.重新索引:reindex和ix 上一篇中介绍过数据读取后默认的行索引是0,1,2,3...这样的顺序号.列索引相当于字段名(即第一行数据),这里重新索引意思就是可以将默认的索引重新修改成自己想要的样子. 1.1 Series 比方说:data=Series([4,5,6],index=['a',

  • python中pandas.DataFrame对行与列求和及添加新行与列示例

    本文介绍的是python中pandas.DataFrame对行与列求和及添加新行与列的相关资料,下面话不多说,来看看详细的介绍吧. 方法如下: 导入模块: from pandas import DataFrame import pandas as pd import numpy as np 生成DataFrame数据 df = DataFrame(np.random.randn(4, 5), columns=['A', 'B', 'C', 'D', 'E']) DataFrame数据预览: A

  • 使用Python向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

  • Python 实现字符串中指定位置插入一个字符

    如下所示: str_1='wo shi yi zhi da da niu/n'str_list=list(str_1) nPos=str_list.index('/') str_list.insert(nPos,',') str_2="".join(str_list) print(str_2) 从文件中提取行,在行最末尾插入一个逗号. 以上这篇Python 实现字符串中指定位置插入一个字符就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章

  • python读取word 中指定位置的表格及表格数据

    1.Word文档如下: 2.代码 # -*- coding: UTF-8 -*- from docx import Document def readSpecTable(filename, specText): document = Document(filename) paragraphs = document.paragraphs allTables = document.tables specText = specText.encode('utf-8').decode('utf-8') f

  • 使用Python脚本提取基因组指定位置序列

    引言 在基因组分析中,我们经常会有这么一个需求,就是在一个fasta文件中提取一些序列出来.有时这些序列是一段完整的序列,而有时仅仅为原fasta文件中某段序列的一部分.特别是当数据量很多时,使用肉眼去挑选序列会很吃力,那么这时我们就可以通过简单的编程去实现了. 例如此处在网盘附件中给定了某物种的全基因组序列(0-refer/ Bacillus_subtilis.str168.fasta),及其基因组gff注释文件(0-refer/ Bacillus_subtilis.str168.gff).

  • python 处理dataframe中的时间字段方法

    在机器学习过程中,通常会通过pandas读取csv文件,保持成dadaframe格式,然而有时候需要对dataframe中的时间字段进行数据建模,比如时间格式为datetime,那么像一般操作dataframe的方式来操作时间字段会报错的,所以在使用sklearn库进行fit和predict的时候,通常要把时间字段首先转换为timestamp格式,在fit和predict之后,如果需要matplotlib绘图的时候,再把timestamp格式转换为时间字符串,比如2017-02-01 14:25

  • C#从字符串中指定位置移除子字符串的方法

    本文实例讲述了C#从字符串中指定位置移除子字符串的方法.分享给大家供大家参考.具体如下: 字符串自带remove方法可以用于删除子字符串,Remove的第一个参数为子字符串开始位置,第二个参数为要删除的子字符串长度 string name = "Raja, Item"; name = name.Remove(4, 1); Console.WriteLine(name); 上面的代码返回:Raja Item,去除了逗号 希望本文所述对大家的C#程序设计有所帮助.

  • python统计字符串中指定字符出现次数的方法

    本文实例讲述了python统计字符串中指定字符出现次数的方法.分享给大家供大家参考.具体如下: python统计字符串中指定字符出现的次数,例如想统计字符串中空格的数量 s = "Count, the number of spaces." print s.count(" ") x = "I like to program in Python" print x.count("i") PS:本站还提供了一个关于字符统计的工具,感兴

  • 易语言在画板中指定位置写出指定文本的方法

    定位写出方法 英文命令:say 操作系统支持:Windows    所属对象:画板 在指定写出位置处写出指定的文本.数值.逻辑值或日期时间,不改变现行写出位置. 语法:  无返回值  画板.定位写出 ([横向写出位置],[纵向写出位置],欲写出数据,- ) 例程 说明 通过"定位写出"命令在画板中指定位置写出一段文本. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链

  • python获取array中指定元素的示例

    对于array,如2-D的array,如何取指定元素 设array为3*10的shape s = array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]]) 想取指定元素,下标索引即可如: >>> s[1][4] 扩展一下,若想同时取多个元素,则把行号,列号对应的元素封装成list,或者range &

  • python输出数组中指定元素的所有索引示例

    如下所示,代码为: array也可直接使用上面代码.测试如下: 以上这篇python输出数组中指定元素的所有索引示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

随机推荐