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 ...
随机推荐
- BZOJ 3295 [CQOI2011]动态逆序对 (三维偏序CDQ+树状数组)
题目大意: 题面传送门 还是一道三维偏序题 每次操作都可以看成这样一个三元组 $<x,w,t>$ ,操作的位置,权值,修改时间 一开始的序列看成n次插入操作 我们先求出不删除时的逆序对总数 ...
- PHP下的异步尝试二:初识协程
PHP下的异步尝试系列 如果你还不太了解PHP下的生成器,你可以根据下面目录翻阅 PHP下的异步尝试一:初识生成器 PHP下的异步尝试二:初识协程 PHP下的异步尝试三:协程的PHP版thunkify ...
- oracle 的列转行函数 listagg()
当你的表X中有A,B两列,数据如下 A B a 1 a 2 a 3 b 1 b 2 b 3 想让数据以 a|1|2|3 , b|1|2|3 格式显示可使用listagg() 1.使用listagg() ...
- Python 3 实现数字转换成Excel列名(10进制到26进制的转换函数)
背景: 最近在看一些Python爬虫的相关知识,讲爬取的一些数据写入到Excel表中,当时当列的数目不确定的情况下,如何通过遍历的方式讲爬取的数据写入到Excel中. 开发环境: Python 3 ...
- WEB开发兼容性---浏览器渲染模式—— document.compatMode
document.compatMode主要是用来判断浏览器采用何种方式渲染,它有两种可能的返回值:BackCompat和CSS1Compat,官方对其解释如下: BackCompat:标准兼容模式关闭 ...
- windows关于定时执行的php脚本
根据业务需求,需要服务器每天定时执行一些脚本,如后台提交数据,定时处理数据库等. 最初的思路是在某个控制器里写好方法,加入code验证,定期的用计划任务去访问.由于window计划任务这方面比较low ...
- 《Objective-C高级编程:iOS与OS X多线程和内存管理》读后感
拿到这本书的第一感觉是非常薄,可是内容就如同序里面所说,这不是一本面向刚開始学习的人的书,比較有深度,对C/C++全然不熟悉的话非常多东西会看不明确. 尽管此书在技术点上仅仅谈到了ARC.Blocks ...
- Android自己定义TabActivity(实现仿新浪微博底部菜单更新UI)
现在Android上非常多应用都採用底部菜单控制更新的UI这样的框架,比如新浪微博 点击底部菜单的选项能够更新界面.底部菜单能够使用TabHost来实现,只是用过TabHost的人都知道自己定义Tab ...
- Tachyon在Spark中的作用(Tachyon: Reliable, Memory Speed Storage for Cluster Computing Frameworks 论文阅读翻译)
摘要: Tachyon是一种分布式文件系统,能够借助集群计算框架使得数据以内存的速度进行共享.当今的缓存技术优化了read过程,可是,write过程由于须要容错机制,就须要通过网络或者 ...
- Darwin流媒体server在windows下搭建
简单介绍 主页: http://dss.macosforge.org/ Darwin Streaming Server (DSS) is an open sourceproject intende ...