pandas 使用insert插入一列
程序员文章站
2022-07-02 19:34:04
把value插入dataframe的指定位置loc中,若插入的数据value已在dataframe中,则返回 错误valueerror,如想完成重复值的插入需要把allow_duplicates设置为...
把value插入dataframe的指定位置loc中,若插入的数据value已在dataframe中,则返回 错误valueerror,如想完成重复值的插入需要把allow_duplicates设置为true
insert方法详解
dataframe.insert(loc, column, value, allow_duplicates=false)
参数:
raises a valueerror if column is already contained in the dataframe, unless allow_duplicates is set to true.
parameters:
loc
:参数column插入的位置,如果想插入到第一例则为0,取值范围: 0 <= loc <= len(columns),其中len(columns)为dataframe的列数
column
:给 插入数据value取列名,可为数字,字符串等
value
:可以是整数,series或者数组等
allow_duplicates
: 默认 false
1.创建数据
import pandas as pd import numpy as np data = { 'school' : ['北京大学', '清华大学', '山西大学', '山西大学', '武汉大学'], 'name' : ['江路离', '沈希梦', '来使鹭', '陈曦冉', '姜浩然'], 'no.' : [20001943, 300044451, 20190006, 20191234, 1242522] } # data = list(data) <-> data = list(data.keys) # data = list(data.values()) frame = pd.dataframe(data) print(frame)
结果:
2.插入数据
frame.insert(0, 'num', np.ones(5)) print(frame)
结果:
frame.insert(len(frame.columns), 'list', [x for x in range(5)]) print(frame)
3.插入已存在数据
结果:
4.把allow_duplicates设置为true,可实现重复值的插入
frame.insert(0, 'num', np.ones(5), allow_duplicates=true) print(frame)
补充:pandas 中的insert(), pop()在dataframe的指定位置中插入某一列
在pandas中,del、drop和pop方法都可以用来删除数据,insert可以在指定位置插入数据。
可以看看以下示例。
import pandas as pd from pandas import dataframe, series data = dataframe({'name':['yang', 'jian', 'yj'], 'age':[23, 34, 22], 'gender':['male', 'male', 'female']}) #data数据 ''' in[182]: data out[182]: age gender name 0 23 male yang 1 34 male jian 2 22 female yj ''' #删除gender列,不改变原来的data数据,返回删除后的新表data_2。axis为1表示删除列,0表示删除行。inplace为true表示直接对原表修改。 data_2 = data.drop('gender', axis=1, inplace=false) ''' in[184]: data_2 out[184]: age name 0 23 yang 1 34 jian 2 22 yj ''' #改变某一列的位置。如:先删除gender列,然后在原表data中第0列插入被删掉的列。 data.insert(0, '性别', data.pop('gender'))#pop返回删除的列,插入到第0列,并取新名为'性别' ''' in[185]: data out[186]: 性别 age name 0 male 23 yang 1 male 34 jian 2 female 22 yj ''' #直接在原数据上删除列 del data['性别'] ''' in[188]: data out[188]: age name 0 23 yang 1 34 jian 2 22 yj '''
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
推荐阅读
-
【转载】C#中使用Insert方法往ArrayList集合指定索引位置插入新数据
-
使用pandas把某一列的字符值转换为数字的实例
-
【转载】C#中使用List集合的Insert方法在指定位置插入数据
-
pandas使用apply多列生成一列数据的实例
-
SQLSever语句(增、删、改、查)一、增:有4种方法1.使用insert插入单行数据
-
使用Insert键选择Word2010“插入”和“改写”模式
-
使用Shell 脚本实现每隔100行插入一条记录且记录第一列包含行号其他列不变
-
pandas 使用insert插入一列
-
oracle+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert
-
Mysql使用insert插入多条记录 批量新增数据