学习pandas两天了,关于这个增加行的问题一直困扰着我,测试了几个代码,终于搞通了一点(昨天是因为代码敲错了。。。)

直接上代码:

 dates = pd.date_range('',periods=6)
df1 = pd.DataFrame(np.arange(24).reshape((6,4)),index = dates,columns=['A','B','C','D'])

创建了一个名为df1的DataFrame,其中数据为24为排列数,关键是index的取值,我这里用的pandas自带的日期序列函数生成的dates

生成的df1如图:

这里可以看到index的名称为date_time格式的

需要加入新的一行时,我采用了loc函数:

df1.loc[pd.to_datetime(''),['A','B','C','D','E']] = [1,2,3,4,5]

按照之前的index的格式添加,显然增加的新行和之前行的形式是相同的:

(这里图片多添加了一行,不牵扯)

但是如果,添加的index和之前的数据类型不同时,会报错么?

试一试:

df1.loc['',['D','E']]=[1,2]

这里我将一个字符串’20180108‘,添加到新行的index,本以为会报错,结果:

添加成功了,不过表格的格式也发生更改了,date_time原本隐藏的时间00:00:00显示出来。接着我添加相同名称的int32位变量试试:

df1.loc[20180108,['E','C']] = [1,3]

同样添加成功,神奇的一幕发生了:

出现了两个完全相同的index:20180108

这是为什么呢?原来是因为,上面那行的20180108的数据类型是str,而下面那行的20180108数据类型是int32,系统判断是两个完全不同的数据,所以会出现两个完全相同的index在表格中

接着,再添加一个date_time格式的’20180108‘吧:

df1.loc[pd.to_datetime(''),['A','B']] = [3,4]

结果不出所料:

成功添加。

至此,pandas的添加行操作原理基本搞明白了,keep learning。

关于pandas增加行时,索引名称的一些问题的更多相关文章

  1. SQLServer2016 之后增加了索引列数的限制 从 16个列 增加到了 32个列

    创建带有包含列的索引 https://docs.microsoft.com/zh-cn/sql/relational-databases/indexes/create-indexes-with-inc ...

  2. 58. :CREATE UNIQUE INDEX 终止,因为发现对象名称 'dbo.tSysParam' 和索引名称 'PK_tSysParam' 有重复的键

    更改实体对应表结构失败[修改实体对象表结构失败[修改表[tSysParam]的主键信息失败:CREATE UNIQUE INDEX 终止,因为发现对象名称 'dbo.tSysParam' 和索引名称 ...

  3. 修改索引名称(mysql)

    MySQL修改索引名称. 对于MySQL 5.7及以上版本,可以执行以下命令: ALTER TABLE tbl_name RENAME INDEX old_index_name TO new_inde ...

  4. sql server 无法创建索引 因为对象名称和索引名称重复

    需求分析:如下图所示,给T_DD_OP1200_Final表的Id字段添加主键,保存时弹出 “T_DD_OP1200_Final”表- 无法创建索引“PK_T_DD_OP1200_Final”. 因为 ...

  5. 【pandas】pandas.DataFrame.rename()---重置索引名称

    官方文档 github地址 例子: 创建DataFrame ### 导入模块 import numpy as np import pandas as pd import matplotlib.pypl ...

  6. sql语句增加字段 索引

    alter table order_info add area varchar(50) create index group_compar on ry_order (group_compar);   ...

  7. pandas基础用法——索引

    # -*- coding: utf-8 -*- # Time : 2016/11/28 15:14 # Author : XiaoDeng # version : python3.5 # Softwa ...

  8. FP增加的索引

    1.优化FP_BOM中第839行执行过慢问题,且会出现ORA-01652: 无法通过 128 (在表空间 STGTEMP 中) 扩展 temp 段ORA-06512: 在 "STG.FP_B ...

  9. Oracle中索引名称的唯一性

    数据库索引处理是遇到的一点问题,简单记录下 oracle的规定,在同一个SCHEMA下的对象是不能用相同的名字命名的,一般创建索引名用“表名_字段名”,这样能很快知道这个索引,是属于哪个表的. col ...

随机推荐

  1. Nexus-配置vPC 实验二

    实验一中介绍的是单面的vPC,本实验配置的是dual site(双面vPC),这样的情况将上下的Port-channel都配置在了同一vPC下面. 实验拓扑如下: N5K-1配置:N5K-1(conf ...

  2. [蓝桥杯2017初赛]Excel地址

    题目描述 Excel单元格的地址表示很有趣,它使用字母来表示列号. 比如,A表示第1列,B表示第2列,Z表示第26列,AA表示第27列,AB表示第28列,BA表示第53列,.... 当然Excel的最 ...

  3. 华水开学第一课&微信支付

    由于疫情的延续,导致我们不能及时开学.只能在网上观看华水开学第一课,但是好像正常开学也没有这个哈哈(不记得了) 昨天没有玩到很晚,12点就睡下.大约半个小时睡着了.定了8点的闹钟.起来的时候那是真的困 ...

  4. BGR 与 HSV 模式的转换规则

    HSV模式中的H.S.V分别表示色调.饱和度.亮度 RGB转化到HSV的算法:max=max(R,G,B) min=min(R,G,B) if R = max, H = (G-B)/(max-min) ...

  5. PLSQL报错: ORA-12170:TNS connect timeout occurred

    本人的问题已解决,先在安装oracle的服务器上黑窗口输入tnsping,提示说no listener,这是监听服务没有打开. 打开服务后还是不行,最后原因是服务器的网络有防火墙的问题,关掉防火墙连接 ...

  6. 无法访问Eureka主页

    spring: application: name: 90foodmall-eureka server: port: 8000 eureka: client: #是否将自己注册到Eureka Serv ...

  7. 借助工具解决DNS污染

    我第一次接触到DNS污染,是在GitHub上面进行学习的时候,发现头像加载出问题,加载失败,而且文档里面的图片也无法显示...... 百度了很多内容,差不多都试了一下,最终选择了使用DNS工具去解决 ...

  8. xshell编码设置-----支持中文

    1. 点击 设置 图标 2. 选择 UTF-8 3. 重启xshell即可

  9. Checked exceptions: Java’s biggest mistake-检查型异常:Java最大的错误(翻译)

    原文地址:http://literatejava.com/exceptions/checked-exceptions-javas-biggest-mistake/ 仅供参考,毕竟我四级都没过 Chec ...

  10. Linux centosVMware NFS exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp

    一.exportfs命令 常用选项 -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录 以下操作在服务端上 vim /etc/exports //增加 /tmp/ 1 ...