【问题标题】:Join multiple dataframes while retaining the row count of the main dataframe加入多个数据帧,同时保留主数据帧的行数
【发布时间】:2021-09-08 00:22:12
【问题描述】:

我有一个 pandas 数据框,用于创建 2 个额外的数据框。创建两个数据框后,我想将两者与原始数据框合并,保留原始数据框的数量。有没有更简单的方法?

原始数据框示例:

第一个数据框示例:

第二个数据框示例:

最终输出应如下所示:

当我尝试这样做时,我要么得到双倍的行数,要么得到一半的行数。

【问题讨论】:

  • 请发布尝试的代码。如果没有,请researchpandas.concat 水平合并。然后,试一试并返回 specific 问题。
  • Column1 是否相关,因为无法猜出cccc 有字母r

标签: python pandas dataframe join merge


【解决方案1】:

重新格式化第三个数据框后,您可以合并它们中的每一个:

df3a = df3.rename(columns={'Column4': 'Column2'}).drop_duplicates('Column2')
>>> df1.merge(df2, on='Column2', how='outer') \
       .merge(df3a, on='Column2', how='outer')

  Column1 Column2  Column3  Column5 Column6
0       p    eeee      3.0        7       7
1       q    dddd      6.0        6       6
2       s    bbbb      4.0        4       4
3       t    aaaa      1.0        3       3
4       u    ssss      4.0        2       3
5       v    rrrr      2.0        1       1
6     NaN    cccc      NaN        5       5

【讨论】:

    猜你喜欢
    • 2020-03-15
    • 2019-05-14
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2018-03-22
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多