pandas 6 合并数据 concat, append 垂直合并,数据会变高/长
from __future__ import print_function
import pandas as pd
import numpy as np
concatenating
# ignore index
df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
df3 = pd.DataFrame(np.ones((3,4))*2, columns=['a','b','c','d'])
print(df1)
print(df2)
print(df3)
> a b c d
> 0 0.0 0.0 0.0 0.0
> 1 0.0 0.0 0.0 0.0
> 2 0.0 0.0 0.0 0.0
> a b c d
> 0 1.0 1.0 1.0 1.0
> 1 1.0 1.0 1.0 1.0
> 2 1.0 1.0 1.0 1.0
> a b c d
> 0 2.0 2.0 2.0 2.0
> 1 2.0 2.0 2.0 2.0
> 2 2.0 2.0 2.0 2.0
res = pd.concat([df1, df2, df3], axis=0, ignore_index=True) # 忽略掉原来的编号012012012重新排序成0
print(res)
> a b c d
> 0 0.0 0.0 0.0 0.0
> 1 0.0 0.0 0.0 0.0
> 2 0.0 0.0 0.0 0.0
> 3 1.0 1.0 1.0 1.0
> 4 1.0 1.0 1.0 1.0
> 5 1.0 1.0 1.0 1.0
> 6 2.0 2.0 2.0 2.0
> 7 2.0 2.0 2.0 2.0
> 8 2.0 2.0 2.0 2.0
join, ('inner', 'outer')
# join, ('inner', 'outer')
df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'], index=[1,2,3])
df2 = pd.DataFrame(np.ones((3,4))*1, columns=['b','c','d', 'e'], index=[2,3,4])
print(df1)
print(df2)
> a b c d
> 1 0.0 0.0 0.0 0.0
> 2 0.0 0.0 0.0 0.0
> 3 0.0 0.0 0.0 0.0
> b c d e
> 2 1.0 1.0 1.0 1.0
> 3 1.0 1.0 1.0 1.0
> 4 1.0 1.0 1.0 1.0
res = pd.concat([df1, df2], axis=1, join='outer') # 默认是outer,没有的属性值用NaN填充,求并集
print(res)
> a b c d b c d e
> 1 0.0 0.0 0.0 0.0 NaN NaN NaN NaN
> 2 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0
> 3 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0
> 4 NaN NaN NaN NaN 1.0 1.0 1.0 1.0
res = pd.concat([df1, df2], axis=1, join='inner') # 只寻找有相同属性的值,其他舍弃,求交集
print(res)
> a b c d b c d e
> 2 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0
> 3 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0
join_axes
# join_axes
res = pd.concat([df1, df2], axis=1, join_axes=[df1.index]) # 保留df1,
print(res)
> a b c d b c d e
> 1 0.0 0.0 0.0 0.0 NaN NaN NaN NaN
> 2 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0
> 3 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0
append
# append
df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
df3 = pd.DataFrame(np.ones((3,4))*1, columns=['b','c','d', 'e'], index=[2,3,4])
print(df1)
print(df2)
> a b c d
> 0 0.0 0.0 0.0 0.0
> 1 0.0 0.0 0.0 0.0
> 2 0.0 0.0 0.0 0.0
> a b c d
> 0 1.0 1.0 1.0 1.0
> 1 1.0 1.0 1.0 1.0
> 2 1.0 1.0 1.0 1.0
res = df1.append([df2], ignore_index=True)
print(res)
> a b c d
> 0 0.0 0.0 0.0 0.0
> 1 0.0 0.0 0.0 0.0
> 2 0.0 0.0 0.0 0.0
> 3 1.0 1.0 1.0 1.0
> 4 1.0 1.0 1.0 1.0
> 5 1.0 1.0 1.0 1.0
res = df1.append([df2, df3])
print(res)
> a b c d e
> 0 0.0 0.0 0.0 0.0 NaN
> 1 0.0 0.0 0.0 0.0 NaN
> 2 0.0 0.0 0.0 0.0 NaN
> 0 1.0 1.0 1.0 1.0 NaN
> 1 1.0 1.0 1.0 1.0 NaN
> 2 1.0 1.0 1.0 1.0 NaN
> 2 NaN 1.0 1.0 1.0 1.0
> 3 NaN 1.0 1.0 1.0 1.0
> 4 NaN 1.0 1.0 1.0 1.0
s1 = pd.Series([1,2,3,4], index=['a','b','c','d'])
print(s1)
> a 1
> b 2
> c 3
> d 4
> dtype: int64
res = df1.append(s1, ignore_index=True) # 添加具体的一行
print(res)
> a b c d
> 0 0.0 0.0 0.0 0.0
> 1 0.0 0.0 0.0 0.0
> 2 0.0 0.0 0.0 0.0
> 3 1.0 2.0 3.0 4.0
END
pandas 6 合并数据 concat, append 垂直合并,数据会变高/长的更多相关文章
- 初识Javascript.03 -- switch、自增、while循环、for、break、continue、数组、遍历数组、合并数组concat
除了注意大小写,别的木啥了 Switch语句 Switch(变量){ case 1: 如果变量和1的值相同,执行该处代码 break; case 2: 如果变量和2的值相同,执行该处代码 break; ...
- (Sql Server)数据的拆分和合并
(Sql Server)数据的拆分和合并 背景: 今天遇到了数据合并和拆分的问题,尝试了几种写法.但大致可分为两类:一.原始写法.二.Sql Server 2005之后支持的写法.第一种写法复杂而且效 ...
- concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
var arr1 = ['a', 'b', 'c']; var arr2 = ['d', 'e', 'f']; var arr3 = arr1.concat(arr2); // arr3 is a n ...
- 多条SQL语句对查询结果集的垂直合并,以及表设计时如何冗余字段
需求引入 你有一个销售单表A 和一个销售单详情表B 和一个收付款记录表C A---->B 一对多 A---->C一对多 如果一个销售单有两个详情,三条收款记录 对一个销售单 我们想查询 ...
- Excel宏录制、数据透视表、合并多个页签
前段时间做数据分析的时候,遇到很多报表文件需要处理,在此期间学习了很多Excel操作,特此做笔记回顾. Excel宏录制 打开开发者工具 打开Excel文件,选择”文件”-->“选项”--> ...
- gridview 合并单元格 并原样导出数据
使用的方式都是比较简单的,asp.net 如何进行数据的导出有好多种方法,大家可以在网上找到, 一下提供一些合并并原样输出的一个简单的代码: public void ToExcel(System.We ...
- oracle 多列数据相同,部分列数据不同合并不相同列数据
出现这样一种情况: 前面列数据一致,最后remark数据不同,将remark合并成 解决办法: 最后一列:结果详情: 使用到的语句为: select a,b,c,wm_concat(d) d,wm_c ...
- 关于表格合并span-method方法的补充(表格数据由后台动态返回)
之前写了一些关于element-ui表格合并的方法,不过用的数据都是确定的数据(死数据),但是很多时候我们的数据都是通过后台获得的,数据不稳定,这个时候使用表格合并就需要先处理一下数据,先看一下一种很 ...
- 【转载】C#的Merge方法合并两个DataTable对象的数据
在C#中的Datatable类中,可以使用DataTable类的Merge方法对两个相同结构的DataTable对象进行求并集运算,将两个DataTable对象的数据行合并到其中一个DataTable ...
随机推荐
- 四、服务器上的 Git
一个远程仓库通常只是一个裸仓库(bare repository)— 即一个没有当前工作目录的仓库.因为该仓库仅仅作为合作媒介,不需要从磁碟检查快照:存放的只有 Git 的资料.简单的说,裸仓库就是你专 ...
- MySql的replace into 语句
MySQL REPLACE语句介绍 MySQL的REPLACE语句是一个MySQL扩展于SQL标准的语句. 官方定义:REPLACE works exactly like INSERT, except ...
- nignx 502错误不能使用/的路径方式 即pathinfo
在server中加入 include enable-php-pathinfo.conf; 引入nginx.conf下的这个文件即可. 如果是tp框架,主要隐藏index.php的入口文件,再加入下面这 ...
- javascript-datatable错误提示
datatables插件在使用的时候出现了如下错误提示**出现此错误的原因可能是你写的table中没有加上<thead>和<tbody>标签所致** 来自为知笔记(Wi ...
- Qt之qInstallMessageHandler(输出详细日志)
简述 安装之前已定义的消息处理程序,返回一个指向前一个消息处理程序. 消息处理程序是一个函数,用于打印调试信息.警告信息.严重错误和致命的错误的消息.Qt库(debug模式)包含成百上千的警告信息打印 ...
- sql学习笔记(18)-----------数据库创建过程
手动创建数据库的步骤: 第一步:决定数据库实例的SID 数据库实例的SID用来将当前实例和以后可能创建的实例进行区分 % setenv ORACLE_SID mynewdb 第二步:建立数 ...
- 博客迁移到reetsee.com
正如上一篇博客所言.眼下CSDN的博客已经基本完毕它的使命了.感谢CSDN带给我的全部美好回顾. 如今我想尝试一下自己维护一个博客,所以博客的全部内容都迁移到了reetsee.com. 以后博客更新会 ...
- Android集成一个新产品时,lunch的product name和device name注意事项
Android系统lunch一个当前的Product大概流程包括下面几个部分: 1. lunch确定TARGET_PRODUCT.一般位于vendor/device/build/target/prod ...
- 2015多校联合训练赛hdu 5301 Buildings 2015 Multi-University Training Contest 2 简单题
Buildings Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Tota ...
- @dynamic与@synthesize的差别
如今非常多时候我们都已经不再使用@synthesizekeyword了,可是须要了解当中的原理: 一.@dynamic与@synthesize的差别 @property有两个相应的词.一个是@synt ...