【python数据分析】数据如何进行合并

简介: 数据的合并在拥有了数据基本筛选能力后,我们还要有更加nb的操作,接下来就学习如何利用Pandas合并多个DataFrame数据,以及筛选我们心仪的数据。在数据合并里面主要讲两个函数的用法

数据的合并

在拥有了数据基本筛选能力后,我们还要有更加nb的操作,接下来就学习如何利用Pandas合并多个DataFrame数据,以及筛选我们心仪的数据。在数据合并里面主要讲两个函数的用法

1️⃣Concat()函数

数据合并主要包括下面两种操作:

轴向连接(concatenation):

pd.concat():可以沿一个轴将多个DataFrame对象连接在一起,形成一个新的DataFrame对象。

concat()函数可以将数据根据不同的轴作进行合并。我们先看一下concat()的常用参数:

pd.concat(objs, axis=0, join=‘outer’)

  1. objs: series、dataframe或者是panel构成的序列list。
  2. axis: 需要合并链接的轴,0是行,1是列,默认是0。
  3. join:连接的方式 inner,或者outer,默认是outer。

先创建两个DataFrame对象

import pandas as pd
dict1={
    'A': ['A0', 'A1', 'A2', 'A3'],
    'B': ['B0', 'B1', 'B2', 'B3'],
    'C': ['C0', 'C1', 'C2', 'C3']}
df1=pd.DataFrame(dict1)
print(df1)
dict2={
    'B': ['B0', 'B1', 'B2', 'B3'],
    'C': ['C0', 'C1', 'C2', 'C3'],
    'D': ['D0', 'D1', 'D2', 'D3']}
df2=pd.DataFrame(dict2)
print(df2)
pd.concat([df1,df2],axis=0,join='outer',ignore_index=True)

✨当concat()使用默认参数合并df1和df2时,合并结果:

通过上面的结果可以发现,当join=‘outer’,axis参数为0时,列进行并集处理,纵向表拼接,缺失值由NaN填充,并且会保留原有数据的行索引。

如果两个表的index都没有实际含义,使用ignore_index参数,置true,重新整理一个新的index。

✨当concat()的axis参数为1合并df1和df2时,合并结果:


0
1 2 3 4 5
0 A0 B0 C0 B0 C0 D0
1 A1 B1 C1 B1 C1 D1
2 A2 B2 C2 B2 C2 D2
3 A3 B3 C3 B3 C3 D3

可以看出当join=‘outer’,axis参数为1时,行进行并集处理,横向表拼接,缺失值由NaN填充。

这种合并的方式,组合特别多,在这不做过多的演示,大家可以多动手,多尝试。

当concat()的join参数为inner时合并df1和df2时:

pd.concat([df1,df2],axis=0,join='inner')

综合上面的结果可以得到:

如果为inner,得到的是两表的交集,如果是outer,得到的是两表的并集。

2️⃣merge()函数

融合(merging):pd.merge()方法可以根据一个或多个键将不同DataFrame中的行连接起来。

merge()函数通过指定连接键拼接列数据,我们先看一下merge的常用参数:

merge(left, right, how='inner', on=None)

1.left和right:两个要合并的DataFrame

2.how:连接方式,有inner、left、right、outer,默认为inner

3.on:指的是用于连接的列索引名称,必须存在于左右两个DataFrame中,如果没有指定且其他参数也没有指定,则以两个DataFrame列名交集作为连接键

运行下面的代码,看看效果

import pandas as pd
left = pd.DataFrame({'key':['a','b','b','d'],'data1':range(4)})
print(left)
right = pd.DataFrame({'key':['a','b','c'],'data2':range(3)})
print(right)

当merge()使用默认参数连接两个DataFrame时:

pd.merge(left, right)

✨效果


key
data2 data1
0 a 0 0
1 b 1 1
2 b 1 2

merge()默认做inner连接,并且使用两个DataFrame的列名交集(key)作为连接键,同样,最终连接的数据也是两个DataFramekey列数据的交集。

当两个DataFram使用做outer连接时:

pd.merge(left,right,on=['key'],how='outer')

✨效果


key
data1 data2
0 a 0.0 0.0
1 b 1.0 1.0
2 b 2.0 1.0
3 d 3.0 NaN
4 c NaN 2.0

当merge()做outer连接时最终连接的数据是两个DataFramekey列数据的并集,缺失的内容由NaN填充

pd.merge(left,right,on=['key'],how='left')
pd.merge(left,right,on=['key'],how='right')

上面这两个代码大家自行尝试

🚩上面我们了解两种合并数据的方式,初学者可能会感到迷惑,很容易混淆,那就举个例子:

例如: 现在有两张表格分别存储了9月和10月份的成交信息,那么这个时候我们就可以使用concat( )将两个表沿着0轴合并。

例如: 现在有两张表格,一个是成交信息,包含订单号、金额、客户ID等信息;第二个是客户信息,包含客户ID、姓名、电话号等信息,那么这个时候我们就可以使用merge()根据客户ID将两个表合并成一个完整的表。

相关文章
|
4天前
|
存储 数据挖掘 Python
使用Python集合高效统计Excel数据
使用Python集合高效统计Excel数据
18 7
|
3天前
|
机器学习/深度学习 算法 Python
Python 使用SMOTE解决数据不平衡问题(最新推荐)
SMOTE是一种强大的过采样技术,可以有效地处理不平衡数据集,提升分类器的性能。通过imbalanced-learn库中的SMOTE实现,我们可以轻松地对少数类样本进行过采样,平衡数据集。在实际应用中,我们可以根据具体数据集的特点和需求,选择合适的过采样方法。
|
4天前
|
数据可视化 Python
Python中的数据可视化:在数据点上添加标签
Python中的数据可视化:在数据点上添加标签
21 3
|
2天前
|
数据可视化 数据挖掘 知识图谱
精选:15款顶尖Python知识图谱(关系网络)绘制工具,数据分析的强力助手
这里有15款免费工具推荐:NetworkX(Python基础),Graph-tool(C++速度),Graphviz(可视化库),ipycytoscape(Jupyter集成),ipydagred3,ipySigma(NetworkX + Web),Netwulf(交互式),nxviz(Matplotlib绑定),Py3plex(复杂网络分析),Py4cytoscape(Python+Cytoscape),pydot(Graphviz接口),PyGraphistry(GPU加速),python-igraph,pyvis(交互式图形),SNAP(大规模网络分析)。绘制和理解网络图从未如此简单!
10 0
|
3天前
|
机器学习/深度学习 自然语言处理 数据挖掘
使用Python和大模型进行数据分析和文本生成
Python语言以其简洁和强大的特性,成为了数据科学、机器学习和人工智能开发的首选语言之一。随着大模型(Large Language Models, LLMs)如GPT-4的崛起,我们能够利用这些模型实现诸多复杂任务,从文本生成到智能对话、数据分析等等。在这篇文章中,我将介绍如何用Python连接和使用大模型,并通过示例展示如何在实际项目中应用这些技术。
|
1天前
|
数据挖掘 Python
python数据分析常用图大集合
python数据分析常用图大集合
|
1天前
|
JSON Serverless 开发工具
函数计算产品使用问题之要使用Python写入时序数据到阿里云表格存储时序表,该怎么办
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3天前
|
XML 数据格式 Python
Python使用xpath对解析内容进行数据提取
今天就介绍一个用于提取所需数据的方法之一xpath。在后续会讲解bs4(beautifulsoup),re正则表达式。
|
16天前
|
机器学习/深度学习 数据采集 数据挖掘
如何用Python进行数据分析?
【6月更文挑战第13天】如何用Python进行数据分析?
116 66
|
13天前
|
数据采集 数据可视化 数据挖掘
数据挖掘实战:使用Python进行数据分析与可视化
在大数据时代,Python因其强大库支持和易学性成为数据挖掘的首选语言。本文通过一个电商销售数据案例,演示如何使用Python进行数据预处理(如处理缺失值)、分析(如销售额时间趋势)和可视化(如商品类别销售条形图),揭示数据背后的模式。安装`pandas`, `numpy`, `matplotlib`, `seaborn`后,可以按照提供的代码步骤,从读取CSV到数据探索,体验Python在数据分析中的威力。这只是数据科学的入门,更多高级技术等待发掘。【6月更文挑战第14天】
50 11

热门文章

最新文章