【问题标题】:Sum columns in pandas only if exists else 0仅当存在时才对 pandas 中的列求和,否则为 0
【发布时间】:2015-10-05 14:53:51
【问题描述】:

我有一个类似

的数据框
  GULOSS         GRLoss

    1             1
    2             2
    3             3

我想以我得到的方式求和

  GULOSS         GRLoss       Post

    6             6            0

在初始数据帧中不存在 Post 并且在最终数据帧中需要 Post,条件是如果它不存在,则将不存在的列的总和设为 0

【问题讨论】:

  • 来了:你试过什么?
  • data = pd.read_csv(filename, encoding='utf-16') data.columns = pd.Series(data.columns).str.replace(' ', '') datasum = data [['GUPLoss', 'GRLoss','POST']].sum()
  • 我需要在 POST 列上添加一些条件,因为它不存在
  • 您的问题毫无意义,请在您的问题中说明新的“发布”列的逻辑,这里的 throw 0 是什么意思?
  • KeyError: "['POST'] 不在索引中"

标签: python pandas sum dataframe


【解决方案1】:

假设我正确理解了您的问题,我会这样做:

if 'POST' not in data.columns:
    data['POST'] = 0

datasum = data.sum() 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 2019-08-07
    • 2015-07-29
    • 2019-12-21
    相关资源
    最近更新 更多