在处理资料的过程中
很常会需要面对到将两笔分开处理好的资料合并起来的情况
因此今天就来谈一下在python中要如何对常见的那些资料类型进行合并吧
不是这种合并
# 合并两个list
list1 = [1,2,3]
list2 = [4,5,6]
list3 = list1 + list2
list3
# [1, 2, 3, 4, 5, 6]
# 合并两个dict
dict1 = {"a":1, "b":2, "c":3}
dict2 = {"e":4, "f":5}
dict3 = dict(dict1) # 先复制一份过去
dict3.update(dict2) # 剩下的用update的
dict3
# {'a': 1, 'b': 2, 'c': 3, 'e': 4, 'f': 5}
# 合并两个set
set1 = {1,2,3}
set2 = {4,5,6}
set3 = set1 | set2 # 用or来合并
set3
# {1, 2, 3, 4, 5, 6}
这边根据方向的不同一共有三种合并方式
# 合并两个numpy向量
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
axis=0
按照最外层元素顺序# 按照最外层元素顺序
np.concatenate((a, b), axis=0)
# array([[1, 2],
# [3, 4],
# [5, 6]])
以a
为例子,其最外层的顺序应该是[1,2]
然後[3,4]
所以按照这个顺序将後面的元素再接起来即是原本的
axis=1
按第1层里面元素顺序# 按第1层里面元素顺序
np.concatenate((a, b.T), axis=1) # b有转置
# array([[1, 2, 5],
# [3, 4, 6]])
一样以a
为例子,对於它来说第1层的元素去排顺序应该是1
,3
(都是排第1个的),然後2
,4
(都是排第2个的),再把b.T
当第三个给接上来
而这边的b
如果不转置的话会因为形状不合而接不上
axis=None
全部摊平# 全部摊平
np.concatenate((a, b), axis=None)
# array([1, 2, 3, 4, 5, 6])
不考虑多维度的向量,全部压成1维之後接起来
import pandas as pd
df1 = pd.DataFrame({"a":[1,2], "b":[3,4]})
df2 = pd.DataFrame({"a":[10], "b":[20]})
df1
df2
axis=0
(可省略)合并pd.concat([df1,df2],axis=0) # aixs=0可以省略
将要合并的DataFrame
们放在一个list里面,然後呼叫pd.concat
就可以得到合并好的DataFrame
了
axis=1
的效果pd.concat([df1,df2],axis=1)
我是没遇到需要用这个方向的啦,但可能有人会好奇所以就补一下会长怎样
缘由: 相信很多人有同感,公司里总会有一些必须要应付的人(误),自己测试完产出ipa档後,提供给公司...
一、说明 今天基本上就只是把前两天的东西包成函式而已, 这样以後就不用每次都去FinMind捞资料了...
昨天我们简单的介绍框架。 那今天我们就来说说vue.js到底是甚麽吧 Vue.js是一个用於建立使用...
建立动态查询 还记得之几篇一开始如何使用条件查询 firestore 的资料吗? this.fir...
D3js 浪漫复刻ExpertOption的养眼图表 用途 在以往实现d3图表时,多半是功能优先,可...