当前位置: 首页 > news >正文

上海网站建设哪家好淮南建设公司网站

上海网站建设哪家好,淮南建设公司网站,自己做好的网站如何发布,中山网站seo关键词文章目录Pandas 合并数据集#xff1a;concat 和 append回顾#xff1a;NumPy 数组的拼接使用 pd.concat 进行简单拼接重复索引将重复索引视为错误忽略索引添加多级索引#xff08;MultiIndex#xff09;键使用连接#xff08;Join#xff09;方式拼接append 方法Pandas … 文章目录Pandas 合并数据集concat 和 append回顾NumPy 数组的拼接使用 pd.concat 进行简单拼接重复索引将重复索引视为错误忽略索引添加多级索引MultiIndex键使用连接Join方式拼接append 方法Pandas 合并数据集concat 和 append 一些最有趣的数据研究来自于合并不同的数据源。 这些操作可以包括从非常简单的两个数据集的拼接到更复杂的数据库式连接和合并这些操作能够正确处理数据集之间的重叠部分。 Series 和 DataFrame 都是为这种操作设计的Pandas 提供了函数和方法使得这种数据整理变得快速且简单。 在这里我们将首先介绍如何使用 pd.concat 函数对 Series 和 DataFrame 进行简单拼接稍后我们会深入讲解 Pandas 中更复杂的内存合并和连接操作。 我们从标准的导入开始 import pandas as pd import numpy as np为了方便起见我们将定义一个函数用于创建特定格式的 DataFrame这将在接下来的示例中非常有用。 # 快速创建DataFrame def make_df(cols, ind):快速创建一个DataFramedata {c: [str(c) str(i) for i in ind]for c in cols}return pd.DataFrame(data, ind)# 创建一个示例DataFrame df1 make_df([A, B, C], [1, 2]) df2 make_df([A, B, C], [3, 4])df1ABC1A1B1C12A2B2C2 df2ABC3A3B3C34A4B4C4 make_df(ABC, range(3))ABC0A0B0C01A1B1C12A2B2C2 此外我们还将创建一个快速类用于让我们能够并排显示多个 DataFrame。该代码利用了特殊的 _repr_html_ 方法这是 IPython/Jupyter 用于实现其丰富对象显示的机制 class display(object):Display HTML representation of multiple objectstemplate div stylefloat: left; padding: 10px;p stylefont-family:Courier New, Courier, monospace{0}/p{1}/divdef __init__(self, *args):self.args argsdef _repr_html_(self):return \n.join(self.template.format(a, eval(a)._repr_html_())for a in self.args)def __repr__(self):return \n\n.join(a \n repr(eval(a))for a in self.args)随着我们在接下来的章节中继续讨论这个类的用途将会变得更加清晰。 回顾NumPy 数组的拼接 Series 和 DataFrame 对象的拼接行为类似于 NumPy 数组的拼接可以通过 np.concatenate 函数实现相关内容可参考 NumPy 数组基础。 回顾一下使用该函数可以将两个或多个数组的内容合并为一个数组 x [1, 2, 3] y [4, 5, 6] z [7, 8, 9] np.concatenate([x, y, z])array([1, 2, 3, 4, 5, 6, 7, 8, 9])第一个参数是要连接的数组的列表或元组。 此外对于多维数组还可以使用 axis 关键字参数指定沿哪个轴进行拼接 x [[1, 2],[3, 4]] np.concatenate([x, x], axis1)array([[1, 2, 1, 2],[3, 4, 3, 4]])使用 pd.concat 进行简单拼接 pd.concat 函数提供了类似于 np.concatenate 的语法但包含了许多我们稍后会讨论的选项 # Pandas v1.3.5 中的函数签名 pd.concat(objs, axis0, joinouter, ignore_indexFalse, keysNone,levelsNone, namesNone, verify_integrityFalse,sortFalse, copyTrue)pd.concat 可以用于简单地拼接 Series 或 DataFrame 对象就像 np.concatenate 可以用于简单地拼接数组一样 ser1 pd.Series([A, B, C], index[1, 2, 3]) ser2 pd.Series([D, E, F], index[4, 5, 6]) pd.concat([ser1, ser2])1 A 2 B 3 C 4 D 5 E 6 F dtype: object它同样适用于拼接更高维度的对象比如 DataFrame df1 make_df(AB, [1, 2]) df2 make_df(AB, [3, 4]) display(df1, df2, pd.concat([df1, df2]))df1 AB1A1B12A2B2 df2 AB3A3B34A4B4 pd.concat([df1, df2]) AB1A1B12A2B23A3B34A4B4 它的默认行为是在 DataFrame 内按行拼接即 axis0。 与 np.concatenate 类似pd.concat 允许指定拼接所沿的轴。 请看下面的例子 df3 make_df(AB, [0, 1]) df4 make_df(CD, [0, 1]) display(df3, df4, pd.concat([df3, df4], axiscolumns))df3 AB0A0B01A1B1 df4 CD0C0D01C1D1 pd.concat([df3, df4], axiscolumns) ABCD0A0B0C0D01A1B1C1D1 我们同样可以指定 axis1这里我们使用了更直观的 axiscolumns。 重复索引 np.concatenate 和 pd.concat 之间的一个重要区别是Pandas 的拼接操作会保留索引即使结果中会出现重复的索引 请看下面这个简短的例子 x make_df(AB, [0, 1]) y make_df(AB, [2, 3]) y.index x.index # make indices match display(x, y, pd.concat([x, y]))x AB0A0B01A1B1 y AB0A2B21A3B3 pd.concat([x, y]) AB0A0B01A1B10A2B21A3B3 注意结果中重复的索引。 虽然在 DataFrame 中这是允许的但这种结果通常并不是我们想要的。 pd.concat 为我们提供了几种处理这种情况的方法。 将重复索引视为错误 如果你希望在 pd.concat 的结果中索引没有重叠可以设置 verify_integrity 参数为 True。 这样拼接时如果出现重复索引就会抛出异常。 下面是一个示例为了更清晰我们会捕获并打印错误信息 try:pd.concat([x, y], verify_integrityTrue) except ValueError as e:print(ValueError:, e)ValueError: Indexes have overlapping values: Index([0, 1], dtypeint64)忽略索引 有时候索引本身并不重要你可能更希望直接忽略它。 可以通过设置 ignore_index 参数来实现这一点。 当该参数设为 True 时拼接后的结果会为新的 DataFrame 创建一个新的整数索引 display(x, y, pd.concat([x, y], ignore_indexTrue))x AB0A0B01A1B1 y AB0A2B21A3B3 pd.concat([x, y], ignore_indexTrue) AB0A0B01A1B12A2B23A3B3 添加多级索引MultiIndex键 另一种选择是使用 keys 选项为数据源指定标签结果将是一个包含这些数据的分层索引MultiIndex序列 display(x, y, pd.concat([x, y], keys[x, y]))x AB0A0B01A1B1 y AB0A2B21A3B3 pd.concat([x, y], keys[x, y]) ABx0A0B01A1B1y0A2B21A3B3 我们可以使用分层索引中讨论的工具将这个多重索引的 DataFrame 转换为我们感兴趣的表示形式。 使用连接Join方式拼接 在前面的简短示例中我们主要拼接的是具有相同列名的 DataFrame。 实际上来自不同数据源的数据可能具有不同的列集合此时 pd.concat 提供了多种选项。 请看下面两个 DataFrame 的拼接示例它们只有部分而不是全部列名相同 df5 make_df(ABC, [1, 2]) df6 make_df(BCD, [3, 4]) display(df5, df6, pd.concat([df5, df6]))df5 ABC1A1B1C12A2B2C2 df6 BCD3B3C3D34B4C4D4 pd.concat([df5, df6]) ABCD1A1B1C1NaN2A2B2C2NaN3NaNB3C3D34NaNB4C4D4 默认行为是用 NA 值填充没有数据的位置。 要更改这一点我们可以调整 concat 函数的 join 参数。 默认情况下join 是输入列的并集joinouter但我们也可以通过设置 joininner将其改为只保留列的交集 display(df5, df6,pd.concat([df5, df6], joininner))df5 ABC1A1B1C12A2B2C2 df6 BCD3B3C3D34B4C4D4 pd.concat([df5, df6], joininner) BC1B1C12B2C23B3C34B4C4 另一种有用的模式是在拼接前使用 reindex 方法以更精细地控制哪些列被舍弃 pd.concat([df5, df6.reindex(df5.columns, axis1)])ABC1A1B1C12A2B2C23NaNB3C34NaNB4C4 append 方法 由于直接拼接数组非常常见在Pandas 2.0.0版本之前Series 和 DataFrame 对象都提供了 append 方法可以用更少的代码实现同样的功能。 但值得注意的是自 Pandas 2.0.0 开始不再支持append方法故以下的示例将报 AttributeError。 display(df1, df2, df1.append(df2))请注意与 Python 列表的 append 和 extend 方法不同Pandas 中的 append 方法不会修改原始对象它会创建一个包含合并数据的新对象。 此外这种方法的效率并不高因为它涉及新索引和数据缓冲区的创建。 因此如果你打算进行多次 append 操作通常更好的做法是先构建一个 DataFrame 对象的列表然后一次性传递给 concat 函数。 Pandas有更强大的多数据源合并方法pd.merge 实现的数据库式合并/连接。 关于 concat、append 及相关功能的更多信息请参阅 Pandas 文档的“合并、连接、拼接与比较”部分。
http://www.zqtcl.cn/news/153160/

相关文章:

  • WordPress多站点恢复石家庄住房城乡建设网站
  • 怎么免费做网站教程手机网站开发项目
  • 临沂做网站需要多少钱甘肃兰州地震最新消息刚刚
  • 怎么把网站封包做appwordpress葬爱导航
  • 浙江省建设厅门户网站菠菜网站如何做推广
  • 飞鸽网站建设网站建设源代码交付
  • 阿里云服务器做盗版电影网站wordpress密码访问
  • 本机可以做网站的服务器吗做磨毛布内销哪个网站比较好
  • 免费建站系统wordpress一个网站需要什么
  • 移动端网站制作的有哪些要求百度广告投放价格表
  • 网站建设互联网推广广告设计公司业务范围
  • 昆明网站关键词优化沪佳装修公司全部门店
  • 南阳卧龙区2015网站建设价格快三直播十大平台直播间
  • 网站谁做的wordpress 空白页面
  • 专业的佛山网站建设公司Wordpress 帖子翻译
  • 南昌网站建设公司网站建设公司深圳企业网站模板
  • 一家做特卖的网站docker创建wordpress
  • 网站开发设计电子书网站后台无法更新缓存
  • 南京高端网站制作公司哪家好神起网络公司
  • 建网站选哪个宁波网站建设设计图
  • 贾汪徐州网站开发门户网站解决方案
  • 网站如何做淘宝支付个人注册商标步骤
  • 书香校园网站建设网站排名下降了怎么办
  • 观音桥网站建设湖南省建设银行网站官网
  • 信阳网站建设找汉狮搭建网站知识
  • 企业门户网站用户类型商务信息网
  • 深圳网站设计廊坊公司深圳ui设计培训班
  • 为什么网站需要维护帮人推广注册app的平台
  • 网站开发岗位要求服务好的做培训网站
  • 宁波制作网站企业有哪些学网页设计需要什么学历