如何加入两个熊猫数据框,使第二个表重复

德布

我有两个数据框 df1 和 df2:

df1 = pd.DataFrame(
    {
        "A": ["A0", "A1", "A2", "A3"],
        "B": ["B0", "B1", "B2", "B3"],
        "C": ["C0", "C1", "C2", "C3"],
        "D": ["D0", "D1", "D2", "D3"],
    },
  )

df1

    A   B   C   D
0   A0  B0  C0  D0
1   A1  B1  C1  D1
2   A2  B2  C2  D2
3   A3  B3  C3  D3

df2

df2 = pd.DataFrame(
    {
        "E": ["A4"],
        "F": ["B4"],
        "G": ["C4"],
        
    },
)

df2

       E    F   G
    0   A4  B4  C4

当我进行连接时,仅填充 df2 的第一行,因为它是单行,其余的为 NULL

output = df1.join(df2)

    A   B   C   D   E   F   G
0   A0  B0  C0  D0  A4  B4  C4
1   A1  B1  C1  D1  NaN NaN NaN
2   A2  B2  C2  D2  NaN NaN NaN
3   A3  B3  C3  D3  NaN NaN NaN

有没有办法加入这样的行而不是 NaN 在其余行中重复,如下所示

期望的输出

    A   B   C   D   E   F   G
0   A0  B0  C0  D0  A4  B4  C4
1   A1  B1  C1  D1  A4  B4  C4
2   A2  B2  C2  D2  A4  B4  C4
3   A3  B3  C3  D3  A4  B4  C4
耶斯瑞尔

第一个想法只是向前填充缺失值,如果有一些缺失值则不起作用df1- 也替换它们:

output = df1.join(df2).ffill()
print (output)
    A   B   C   D   E   F   G
0  A0  B0  C0  D0  A4  B4  C4
1  A1  B1  C1  D1  A4  B4  C4
2  A2  B2  C2  D2  A4  B4  C4
3  A3  B3  C3  D3  A4  B4  C4

或者使用由 Dataframe 的第一列创建的解包 - 缺点是如果整数列名称DataFrame.assignSeriesdf2

output = df1.assign(**df2.iloc[0])

或者DataFrame.reindex在两个s中使用相同的索引DataFrame,也是通过method='ffill'参数重复的值:

output = df1.join(df2.reindex(df1.index, method='ffill'))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何加入两个表并使用第二个表覆盖第一个表?

如何从两个表中获取数据,第二个表显示行数

合并两个表,而不重复第二个表的值

熊猫:如何合并两个数据框并使用第二个数据框中的值填充NaN值

在Laravel中联接两个表-如何将第二个表数据作为结果的属性

如何通过python从条件删除熊猫数据框中的第二个连续/重复行出现?

如何从[返回两个表的存储过程]插入[第二个临时表]

SQL Server-根据第二个表中的最早日期加入两个表

如何将熊猫数据框的状态导入第二个.py文件

如何在熊猫数据框中设置第二个?

联接两个表,按第二个表上的字段排序,没有重复项

如何从两个列表中创建一个熊猫数据框,其中第一个列表的每个值都将第二个列表的每个值作为记录

如何合并两个复杂类型的HashSet并保留第二个集合的重复项?

sql从第二个表加入csv

如何使用熊猫从第二个数据框中过滤数据框中2列的值

如何使用python中的pandas仅从具有两个数据框的网页中选择第二个数据框?

Mysql 如何查询两个表并从第二个表中计算 groupid

如何联接两个表并将第二个表中的null替换为零

如何根据id合并两个表,然后从第二个表中获取日期值

如何联接两个表,并且仅从第二个表中获取值(如果存在)?

根据第二个数据框的匹配列更新熊猫数据框

如何使用mysql query从两个表中获取数据,并将某些条件应用于第二个表?

连接两个表,仅从第二个表返回一行

联接两个表,其中第二个表需要多次联接

如果是联接两个表,则从第二个表获取ID

左联接两个表并获取第二个表中的记录数

连接两个表,将值插入到第二个表中

SQL连接两个表,仅获取第二个表的最新条目

比较两个表并显示从第二个表中选择的值