首页 > 后端开发 > Python教程 > 如何在不考虑键或列差异的情况下水平连接 Pandas DataFrame?

如何在不考虑键或列差异的情况下水平连接 Pandas DataFrame?

Linda Hamilton
发布: 2024-10-27 21:04:30
原创
241 人浏览过

How can I horizontally concatenate Pandas DataFrames without considering keys or column differences?

在 Pandas 中水平连接 DataFrame

要水平连接两个 DataFrame,而不考虑键和列数的潜在差异,请使用 concat具有 axis=1 参数的函数。此参数指定应按列执行串联。

示例:

考虑以下两个 DataFrame,df_a 和 df_b,行数相同但不同列数:

<code class="python">import pandas as pd

dict_data = {'Treatment': ['C', 'C', 'C'], 'Biorep': ['A', 'A', 'A'], 'Techrep': [1, 1, 1], 'AAseq': ['ELVISLIVES', 'ELVISLIVES', 'ELVISLIVES'], 'mz': [500.0, 500.5, 501.0]}
df_a = pd.DataFrame(dict_data)

dict_data = {'Treatment1': ['C', 'C', 'C'], 'Biorep1': ['A', 'A', 'A'], 'Techrep1': [1, 1, 1], 'AAseq1': ['ELVISLIVES', 'ELVISLIVES', 'ELVISLIVES'], 'inte1': [1100.0, 1050.0, 1010.0]}
df_b = pd.DataFrame(dict_data)</code>
登录后复制

要水平连接这些 DataFrame,请使用以下代码:

<code class="python">pd.concat([df_a, df_b], axis=1)</code>
登录后复制

这将创建一个新的 DataFrame,其行数与原始 DataFrame 相同,并且列数等于两个 DataFrame 中列的总和。生成的 DataFrame 将如下所示:

       AAseq Biorep  Techrep Treatment     mz      AAseq1 Biorep1  Techrep1  Treatment1  inte1
0  ELVISLIVES      A        1         C  500.0  ELVISLIVES       A         1          C   1100
1  ELVISLIVES      A        1         C  500.5  ELVISLIVES       A         1          C   1050
2  ELVISLIVES      A        1         C  501.0  ELVISLIVES       A         1          C   1010
登录后复制

替代方法:

根据具体要求,还有替代方法来水平连接 DataFrame。

  • 与索引合并:如果 DataFrame 具有相同的行数并且没有冲突的列名称,则可以使用 left_index=True 和 right_index=True 的合并功能。这将根据索引合并 DataFrame。
  • Join: 与合并方法类似,join 函数也可用于水平连接 DataFrame。当您想要连接具有不同索引的 DataFrame 时,它​​特别有用。

以上是如何在不考虑键或列差异的情况下水平连接 Pandas DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板