文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

pandas 使用insert插入一列

2024-04-02 19:55

关注

把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
'''

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯