首页 > 其他分享 >df.insert()插入1列

df.insert()插入1列

时间:2023-08-21 16:13:41浏览次数:24  
标签:insert 插入 df 列名 column allow

pandas.DataFrame.insert

DataFrame.insert(self, loc, column, value, allow_dupicates=False)

功能:Insert column into DataFrame at specified location

参数详解:
注意:进行insert之后,会修改原数据,且不能用于赋值操作。

  • loc: int # 使用整型数据,是列数据的插入的位置,必须是0到Len(columns)之间的数
  • column: string, number, or hashable object # 类型可以字符串、数字或者object。表示列的标签名
  • value: int, Series, or array-like # 整数、Series或者数组型数据。是插入列的值
  • allow_duplicates: bool, optional # 布尔型数据, 可选参数。如果某个列名在dataframe中已经存在,将allow_duplicates置为true才可以将同样的列名插入

示例

1. 原始数据

import pandas as pd
import numpy as np

df = pd.DataFrame(np.arange(12).reshape(4, 3), columns=['a', 'b', 'c'])
df

output:

 abc
0 0 1 2
1 3 4 5
2 6 7 8
3 9 10 11

2. 插入一列

不能进行赋值,且插入后修改原始数据

df.insert(0, 'd', 2)
df

output:

 dabc
0 2 0 1 2
1 2 3 4 5
2 2 6 7 8
3 2 9 10 11

3. 插入相同列名

# 插入列名”c”,报错,因为原来就有这个列名

df.insert(2, 'c', np.ones(4))

output:

---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

~\AppData\Local\Temp\ipykernel_2076\284648989.py in <module>
      1 # 插入列名”c”,报错,因为原来就有这个列名
      2 
----> 3 df.insert(2, 'c', np.ones(4))


D:\anaconda3\lib\site-packages\pandas\core\frame.py in insert(self, loc, column, value, allow_duplicates)
   4441         if not allow_duplicates and column in self.columns:
   4442             # Should this be a different kind of error??
-> 4443             raise ValueError(f"cannot insert {column}, already exists")
   4444         if not isinstance(loc, int):
   4445             raise TypeError("loc must be int")


ValueError: cannot insert c, already exists
  • allow_duplitcats设置为True
# 将allow_duplicates设置为True就可以
df.insert(2, 'c', np.ones(4), allow_duplicates=True)
df
 dacbc
0 2 0 1.0 1 2
1 2 3 1.0 4 5
2 2 6 1.0 7 8
3 2 9 1.0 10 11

 

 

import pandas as pd
import openpyxl



df = pd.read_excel("./2123.xlsx", sheet_name="云服务器 ECS")

AppName_column = df['名称'].str.split('-',expand=True)[0]


df.insert(0,'应用名称',AppName_column)


df.to_excel('./temp.xlsx',index=False)

  

标签:insert,插入,df,列名,column,allow
From: https://www.cnblogs.com/weifeng1463/p/17646264.html

相关文章

  • 扁扁笨算法-B树的插入与删除
    扁扁笨算法-B树的插入与删除扁扁笨简述扁扁笨算法是将不平衡子树打成一条中序遍历的直链(实质是一条升序链),然后按照寻找中点并提起中点构造二叉树的一种朴素做法。扁扁笨算法是一种确定平衡树调整结构之后填入数字的辅助手段,本身并没有什么出彩的地方。理论简介B树是一种强结构......
  • 扁扁笨算法-AVL树的插入与删除
    扁扁笨算法-AVL树的插入与删除扁扁笨简述扁扁笨算法是将不平衡子树打成一条中序遍历的直链(实质是一条升序链),然后按照寻找中点并提起中点构造二叉树的一种朴素做法。扁扁笨算法是一种确定平衡树调整结构之后填入数字的辅助手段,本身并没有什么出彩的地方。理论简介AVL树插入之后......
  • Hadoop学习笔记、知识点搭建速过、包含Hadoop集群搭建、HDFS、IDE操作hadoop,DFSShell
    大数据概述......
  • df_sql_str
    #!/usr/bin/envpython#-*-encoding:utf-8-*-importpandasaspdimportnumpyasnp#生成一个dfdates=pd.date_range('20210913',periods=6)df=pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))print(df)#定义df输入源,以及目标......
  • mybatis设置命名格式转换 与 批量插入更新&select查询返回自定义实体类 的sql写法
    在mybatis的配置文件中设置了Java实体类驼峰命名与表属性下划线命名的自动转换。在mybatis中,从接口获取到大量数据之后,将数据集合分批量插入更新到表中。在mybatis中,select查询表数据,返回数据的存储类型为自定义的实体类。1.设置Java实体类驼峰命名与表属性下划线......
  • 选择冒泡插入排序 异或 二分 对数器
    算法时间复杂度O(x)空间复杂度O(x)数据状况是否影响时间复杂度表现选择排序n21否冒泡排序n21否插入排序n21是(最好情况下O(N))1.选择排序:遍历找出0~n-1最小的数放在0位置,遍历找出1~n-1最小的数放在1位置时间复杂度O(n2) 空间复杂度O(1)voidswap(vector<int>&nums,inti,intj......
  • MySqlBulkLoader批量数据插入
    MySqlBulkLoader批实现过程:将需要的数据集保存到CSV文件,然后再从文件里面读取。 CsvHelp1///<summary>2///定义csv文件3///</summary>4///<paramname="folder">路径</param>5///<paramname="......
  • 插入排序
    插入排序就像斗地主时理牌一样publicstaticvoidinsertSort(int[]arr){for(inti=1;i<arr.length;i++){//i是待插入元素的索引inttemp=arr[i];//待插入值intj=i-1;//已排序区域......
  • Python实现pdf转jpg
    自己电脑没找到软件用,想到python参考:https://zyicu.cn/?p=7656代码:(还可以调整分辨率)#-*-coding:utf-8-*-"""1、安装库pipinstallpymupdf2、直接运行"""importosimportfitzpdf_dir=[]defget_file():docunames=os.listdir()for......
  • dfs序线段树
    dfs序线段树1.树上操作思路遍历一整棵树,记录一下节点\(u\)的所对应的子树的节点数\(siz_u\)以及\(dfs\)序\(dfn_u\)根据整棵树的\(dfs\)序,我们可以把树变成了一个序列再维护线段树,\(\text{update(l,r,x)}\)表示将\([\text{l,r}]\)上值加上\(x\).\(\text{query(......