关于pandas增加行时,索引名称的一些问题
学习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增加行时,索引名称的一些问题的更多相关文章
- SQLServer2016 之后增加了索引列数的限制 从 16个列 增加到了 32个列
创建带有包含列的索引 https://docs.microsoft.com/zh-cn/sql/relational-databases/indexes/create-indexes-with-inc ...
- 58. :CREATE UNIQUE INDEX 终止,因为发现对象名称 'dbo.tSysParam' 和索引名称 'PK_tSysParam' 有重复的键
更改实体对应表结构失败[修改实体对象表结构失败[修改表[tSysParam]的主键信息失败:CREATE UNIQUE INDEX 终止,因为发现对象名称 'dbo.tSysParam' 和索引名称 ...
- 修改索引名称(mysql)
MySQL修改索引名称. 对于MySQL 5.7及以上版本,可以执行以下命令: ALTER TABLE tbl_name RENAME INDEX old_index_name TO new_inde ...
- sql server 无法创建索引 因为对象名称和索引名称重复
需求分析:如下图所示,给T_DD_OP1200_Final表的Id字段添加主键,保存时弹出 “T_DD_OP1200_Final”表- 无法创建索引“PK_T_DD_OP1200_Final”. 因为 ...
- 【pandas】pandas.DataFrame.rename()---重置索引名称
官方文档 github地址 例子: 创建DataFrame ### 导入模块 import numpy as np import pandas as pd import matplotlib.pypl ...
- sql语句增加字段 索引
alter table order_info add area varchar(50) create index group_compar on ry_order (group_compar); ...
- pandas基础用法——索引
# -*- coding: utf-8 -*- # Time : 2016/11/28 15:14 # Author : XiaoDeng # version : python3.5 # Softwa ...
- FP增加的索引
1.优化FP_BOM中第839行执行过慢问题,且会出现ORA-01652: 无法通过 128 (在表空间 STGTEMP 中) 扩展 temp 段ORA-06512: 在 "STG.FP_B ...
- Oracle中索引名称的唯一性
数据库索引处理是遇到的一点问题,简单记录下 oracle的规定,在同一个SCHEMA下的对象是不能用相同的名字命名的,一般创建索引名用“表名_字段名”,这样能很快知道这个索引,是属于哪个表的. col ...
随机推荐
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 网格系统实例:响应式的列重置
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 【原】jenkins知识点_凭据(一)
一:凭据 1.目的: 与第三方网站或应用程序进行交互,如代码仓库.云存储系统和服务等 2.操作路径: Jenkins-凭据-系统-全局凭据 3.权限 Jenkins 中保存的凭证可以用于: 任何适用于 ...
- 如果谷歌浏览器突然打不开网页,而且显示:"网页可能暂时无法连接,或者它已永久性地移动到了新网址,返回ERR_TUNNEL_CONNECTION_FAILED",怎么办?用这个方法,亲试有效!!!
打开cmd: 依次输入: ipconfig /flushdnsnbtstat –rnetsh int ip resetnetsh winsock reset 效果图 然后我的浏览器就能正常使用了,很有 ...
- Python学习第二十六课——PyMySql(python 链接数据库)
Python 链接数据库: 需要先安装pymysql 包 可以设置中安装,也可以pip install pymysql 安装 加载驱动: import pymysql # 需要先安装pymysql 包 ...
- STC8
一 时钟: IRC:24MHZ;LSI:32.768KHZ;HSE:4~33MHZ,外设可分频 二 2种低功耗模式: IDLE:1.3MA@6MHZ,外设可唤醒. STOP: 三:ISP下载更新模式: ...
- Codeforces Global Round 5E(构造,思维)
#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int main(){ ios::sync_w ...
- LinkList(链表)
code: #include <stdio.h> #include <time.h> #include <conio.h> #include <stdlib. ...
- 遍历pd.Series的index和value的方法
以下内容来自链接:https://blog.csdn.net/qq_42648305/article/details/89634186 遍历pd.Series的index和value的方法如下,pyt ...
- vue学习笔记:Hello Vue
编写简单例子,了解下基本语法 <!DOCTYPE html> <html> <head> <meta charset="utf-8 "&g ...
- Struts2学习(六)
拦截器原理 1.如图所示,Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表,最后一个一 ...