首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《Python for Excel》读书笔记连载11:使用pandas进行数据分析之组合数据

引言:本文为《Python for Excel》第5章Chapter 5:Data Analysis with pandas部分内容,主要讲解了pandas如何数据组合,即concat、join和...如果你以前使用过关系数据库,那么它概念SQL查询JOIN子句相同。...图5-3通过使用两个示例数据框架df1df2,展示了四种联接类型(即内联接Inner、左联接Left、右联接Right和外联接Outer)如何工作。...左联接(leftjoin)获取左数据框架df1所有,并在索引上匹配数据框架df2,在df2没有匹配地方,pandas将填充NaN。左联接对应于ExcelVLOOKUP情况。...右联接(rightjoin)获取右表df2所有,并将它们df1索引相同行相匹配

2.5K20

盘点 Pandas 中用于合并数据 5 个最常用函数!

作者:阿南 整理:小五 如何Pandas合并数据,大家肯定都不陌生。 作为一个初学者,我发现自己学了很多,却没有好好总结一下。...右侧 DF 没有左侧 DF 匹配索引,会被删除,如下所示: df0.join(df2) 此外,还可以设置 how 参数,这点SQL语法一致。...是指两个数据数据交叉匹配,出现n1*n2数据量,具体如下所示。...take_larger_square 函数对 df0 和 df1 a 列以及 df0 和 df1 b 列进行操作。...在这种情况下,df1 a 列和 b 列将作为平方,产生最终值,如上面的代码片段所示 5、append 回顾前文,我们讨论大多数操作都是针对按列来合并数据。 如果按合并(纵向)该如何操作呢?

3.3K30
您找到你想要的搜索结果了吗?
是的
没有找到

直观地解释和可视化每个复杂DataFrame操作

大多数数据科学家可能会赞扬Pandas进行数据准备能力,但许多人可能无法利用所有这些能力。...操作数据可能很快会成为一项复杂任务,因此在Pandas八种技术均提供了说明,可视化,代码和技巧来记住如何做。 ?...Melt Melt可以被认为是“不可透视”,因为它将基于矩阵数据(具有二维)转换为基于列表数据(列表示值,表示唯一数据点),而枢轴则相反。...“inner”:仅包含元件键是存在于两个数据键(交集)。默认合并。 记住:如果您使用过SQL,则单词“ join”应立即按列添加相联系。...例如,考虑使用pandas.concat([df1df2])串联具有相同列名 两个DataFrame df1df2 : ?

13.3K20

Python数据处理从零开始----第二章(pandas)⑨pandas读写csv文件(4)

如何pandas写入csv文件 我们将首先创建一个数据框。我们将使用字典创建数据框架。...此列是pandas数据index。我们可以使用参数index并将其设置为false以除去此列。...如何将多个数据读取到一个csv文件 如果我们有许多数据,并且我们想将它们全部导出到同一个csv文件。 这是为了创建两个新列,命名为group和row num。...重要部分是group,它将标识不同数据。在代码示例最后一,我们使用pandas数据写入csv。...列表keys参数(['group1'、'group2'、'group3'])代表不同数据框来源。我们还得到列“row num”,其中包含每个原数据行数: ? image.png

4.3K20

2020年入门数据分析选择Python还是SQL?七个常用操作对比!

在阅读本文前,你可以访问下方网站下载本文使用示例数据,并导入MySQLpandas,一边敲代码一边阅读!...'value': np.random.randn(4)}) 内连接 内联接使用比较运算符根据每个表共有的列匹配两个表,在SQL实现内连接使用INNER JOIN SELECT * FROM...df1 INNER JOIN df2 ON df1.key = df2.key; 在pandas可以使用merge() ?...全连接 全连接返回左表和右表所有,无论是否匹配,但并不是所有的数据库都支持,比如mysql就不支持,在SQL实现全连接可以使用FULL OUTER JOIN SELECT * FROM df1...七、合并 SQLUNION操作用于合并两个或多个SELECT语句结果集,UNIONUNION ALL类似,但是UNION将删除重复

3.5K31

手把手教你用 pandas 分析可视化东京奥运会数据

本文将基于东京奥运会奖牌榜数据,使用 pandas 进行数据分析可视化实战(文末可以下载数据源码) 数据读取 首先是奥运会奖牌数据获取,虽然有很多接口提供数据,但是通过奥运会官网拿到数据自然是最可靠...ID进行匹配 df2 = pd.read_csv("东京奥运会奖牌分日数据.csv") 修改列名 注意到上面的 df1 列名并没有完整,所以可以使用 rename 函数修改指定列名称 df1.rename...列,但是其 df1 有一个共同列 国家id 为了给 df2 新增一列 国家名称 列,一个自然想法就是通过 国家id 列将两个数据框进行合并,在 pandas 实现,也不是什么困难事情 temp...,注意是查询而不是筛选,所以使用上上一题方法将会报错 result.query("国家 == ['中国']") 个性化查看 如何将上一题结果进一步突出展示,可以使用 pandas style...本文全部内容均取自「pandas进阶修炼300题」实战案例3,如果你也想真实操作一遍,可以点击下方文章查看如何下载数据源码~ 点击下载「pandas进阶修炼300题」

1.4K41

Pandas 2.2 中文官方教程和指南(四)

pandas ,索引可以设置为一个(或多个)唯一值,就像在工作表中使用作为标识符列一样。大多数电子表格不同,这些Index值实际上可以用于引用。...pandas 数据有一个merge()方法,提供类似的功能。数据不需要提前排序,并且不同连接类型通过how关键字实现。...在 pandas ,索引可以设置为一个(或多个)唯一值,这类似于在工作表中使用作为标识符列。大多数电子表格不同,这些Index值实际上可以用于引用。...引用电子表格列类似,Series一起工作。 Index 每个DataFrame和Series都有一个Index,这些是数据标签。...如果匹配多行,则每个匹配将有一,而不仅仅是第一个匹配 它将包括查找表所有列,而不仅仅是单个指定列 它支持更复杂连接操作 其他考虑事项 填充手柄 在一组特定单元格按照一定模式创建一系列数字

18910

Pandas知识点-算术运算函数

() df1.pow(df2) 计算df1df2次方,df1^df2 rpow() df1.rpow(df2) 计算df2df1次方,df2^df1Pandas,这些函数用法和运算规则都相同...DataFrame不同是,使用fill_value参数先填充数据再进行运算时,结果不会有空值。因为Series是一维数据,对Series填充时,不存在两个Series都是填充值索引。...在SeriesDataFrame进行算术运算时,默认会将Series看成是一数据(而不是一列),在add()函数,axis参数默认为1或'columns'。...如果Series索引DataFrame列索引相同,会将Series依次DataFrame每一数据进行运算,得到一个新DataFrame。 2....如果Series索引DataFrame索引对应,要使Series按列DataFrame运算,可以将axis参数设置成0或'index',这样会将Series依次DataFrame每一列数据进行运算

1.9K40

对比Excel,Python pandas删除数据框架

标签:PythonExcel,pandas 对于Excel来说,删除是一项常见任务。本文将学习一些从数据框架删除技术。...准备数据框架 我们将使用前面系列中用过“用户.xlsx”来演示删除。 图1 注意上面代码index_col=0?如果我们将该参数留空,则索引将是基于0索引。...使用.drop()方法删除 如果要从数据框架删除第三(Harry Porter),pandas提供了一个方便方法.drop()来删除。...inplace:告诉pandas是否应该覆盖原始数据框架。 按名称删除 图2 我们跳过了参数axis,这意味着将其保留为默认值0或。因此,我们正在删除索引值为“Harry Porter”。...这次我们将从数据框架删除带有“Jean Grey”,并将结果赋值到新数据框架。 图6

4.5K20

Python科学计算:Pandas

数据分析工作Pandas使用频率是很高,一方面是因为Pandas提供基础数据结构DataFramejson契合度很高,转换起来就很方便。...删除 DataFrame 不必要列或 Pandas提供了一个便捷方法 drop() 函数来删除我们不想要列或。比如我们想把“语文”这列删掉。...如何用SQL方式打开Pandas PandasDataFrame数据类型可以让我们像处理数据表一样进行操作,比如数据增删改查,都可以用Pandas工具来完成。...我重点介绍了数据清洗操作,当然Pandas同样提供了多种数据统计函数。 最后我们介绍了如何数据表进行合并,以及在Pandas中使用SQL对数据表更方便地进行操作。...PandasNumPy工具库配合使用可以发挥巨大威力,正是有了Pandas工具,Python做数据挖掘才具有优势。 ?

1.9K10

Pandas merge用法解析(用Excel数据为例子)

可以是列名,索引级名称,也可以是长度等于DataFrame长度数组。 left_index: 如果为True,则使用左侧DataFrame索引(标签)作为其连接键。...对于具有MultiIndex(分层)DataFrame,级别数必须右侧DataFrame连接键数相匹配。 right_index: left_index功能相似。...(df1,df2,how='inner') 如果是用 how=’inner’,是取交集 则可以看到【2019010 鸠摩智】【2019011 丁春秋】两个数据丢失了 vlookup_data=...,没有数所用NaN填空 vlookup_data=pd.merge(df1,df2,how='left') 左边数据DataFrame【2019010 鸠摩智】保留,右边【2019011 丁春秋...】丢失了 vlookup_data=pd.merge(df1,df2,how='right') 这个就可以自己解理了 ======================= Pandas比excelvlookup

1.6K20

在Python实现ExcelVLOOKUP、HLOOKUP、XLOOKUP函数功能

标签:PythonExcel,pandas ExcelLOOKUP公式可能是最常用公式之一,因此这里将在Python实现Excel查找系列公式功能。...pandas系列一个优点是它.empty属性,告诉我们该系列是否包含值或空,如果match_value为空,那么我们知道找不到匹配项,然后我们可以通知用户在数据找不到查找值。...注意,df1是我们要将值带入表,df2是我们从中查找值源表,我们将两个数据框架列传递到函数,用于lookup_array和return_array。...默认情况下,其值是=0,代表,而axis=1表示列 args=():这是一个元组,包含要传递到func位置参数 下面是如何将xlookup函数应用到数据框架整个列。...df1['购买物品'] = df1['用户姓名'].apply(xlookup,args = (df2['顾客'], df2['购买物品'])) 需要注意一件事是,apply()如何将参数传递到原始func

6.6K10

Python 数据分析(三):初识 Pandas

简介 Pandas 基于 NumPy 开发,它提供了快速、灵活、明确数据结构,旨在简单、直观地处理数据。...Pandas 适用于处理以下类型数据: 有序和无序时间序列数据 带行列标签矩阵数据,包括同构或异构型数据 SQL 或 Excel 表类似的,含异构列表格数据 任意其它形式观测、统计数据集,...数据转入 Pandas 数据结构时不必事先标记 Pandas 主要数据结构是 Series(一维数据 DataFrame(二维数据),这两种数据结构足以处理金融、统计等领域里大多数典型用例。...DataFrame DataFrame 是一种二维数据结构,类似于 Excel 、SQL 表或 Series 对象构成字典,DataFrame 是最常用 Pandas 对象, Series 一样,...取某一个值 print(df.iloc[0, 1]) 3.3 添加删除 我们通过示例来看一下如何向 DataFrame 添加数据以及如何从其中删除数据

1.6K20

pandas技巧4

本文中记录Pandas操作技巧,包含: 导入数据 导出数据 查看、检查数据 数据选取 数据清洗 数据处理:Filter、Sort和GroupBy 数据合并 常识 # 导入pandas import pandas...np.max df.groupby(col1).col2.transform("sum") # 通常groupby连用,避免索引更改 数据合并 df1.append(df2) # 将df2添加到...df1尾部 df.concat([df1, df2],axis=1,join='inner') # 将df2列添加到df1尾部,值为空对应对应列都不要 df1.join(df2.set_index...(col1),on=col1,how='inner') # 对df1列和df2列执行SQL形式join,默认按照索引来进行合并,如果df1df2有共同字段时,会报错,可通过设置lsuffix,rsuffix...方式为outer pd.merge(df1, df2, left_index=True, right_index=True, how='outer') #df1.join(df2, how='outer

3.4K20
领券