【问题标题】:updating and including two Pandas' DataFrames更新并包含两个 Pandas\' DataFrames
【发布时间】:2022-12-18 13:56:31
【问题描述】:

我想通过求和来更新 Pandas 的 DataFrame,如果合并后的 DataFrame 中不存在 ID,那么我想包含 ID 对应的行。例如,假设有两个这样的 DataFrame:

import pandas as pd

d1 = pd.DataFrame({'ID': ["A", "B", "C", "D"], "value": [2, 3, 4, 5]})
d2 = pd.DataFrame({'ID': ["B", "D", "E"], "value": [1, 3, 2]})

然后,我想产生的最终输出如下:

  ID  value
0  A      2
1  B      4
2  C      4
3  D      8
4  E      2

你对此有什么想法吗?我尝试使用 updateconcat 函数来实现,但这不是生成我想要生成的结果的方法。提前致谢。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    使用concat并聚合sum

    df = pd.concat([d1, d2]).groupby('ID', as_index=False).sum()
    print (df)
      ID  value
    0  A      2
    1  B      4
    2  C      4
    3  D      8
    4  E      2
    

    另一个想法是在两个 DataFrame 中使用唯一的 IDID 转换为索引并使用 DataFrame.add

    df = d1.set_index('ID').add(d2.set_index('ID'), fill_value=0).reset_index()
    print (df)
      ID  value
    0  A    2.0
    1  B    4.0
    2  C    4.0
    3  D    8.0
    4  E    2.0
    

    【讨论】:

    • 哇,非常感谢您的及时答复!
    猜你喜欢
    • 2018-05-16
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 2017-04-03
    • 1970-01-01
    • 2013-07-24
    相关资源
    最近更新 更多