【问题标题】:calculate a value basis some conditions and assign it to a new variable根据某些条件计算值并将其分配给新变量
【发布时间】:2020-02-19 03:45:16
【问题描述】:

我正在计算一个条件的净余额值,我想将它完全存储在一个新变量中。新变量应将此计算值存储为整数或浮点数,而不是数组

我试过下面的代码:

  #variable = something if condition else something_else
  mar_final_bal = x_start_bal+df2['credit_line']+df2['Net_Balance'] if 
  df2['month' == 'March-2016']
  apr_final_bal = mar_final_bal+df2['credit_line']+df2['Net_Balance'] if 
  df2['month' == 'Apr-2016']

mar_final_bal 和 apr_final_bal 是我想使用右侧条件创建的两个变量

【问题讨论】:

    标签: python python-3.x pandas loops


    【解决方案1】:

    很明显,您是使用 Pandas 的新手。语法看起来比 pandas 代码更像伪代码。 IIUC,这就是你的意思:

    mar_final_bal = x_start_bal+df2.loc[df2['month'] == 'March-2016', 'credit_line'].sum() + df2.loc[df2['month'] == 'March-2016', 'Net_Balance'].sum()
    apr_final_bal = mar_final_bal+df2.loc[df2['month'] == 'Apr-2016', 'credit_line'].sum() + df2.loc[df2['month'] == 'Apr-2016', 'Net_Balance'].sum()
    

    【讨论】:

    • 这解决了我的问题。我想再问一件事,我每个月都会有 12 个这样的变量,然后我想使用当前月份列将这些变量分配到一个新列中。例如: df2['month_new']= np.where(df2['month']=='mar_2019',mar_final_bal,0 ) ,这行得通吗?然后我必须使用新创建的变量一次将所有这 12 个月分配到一个列中
    • 您可能应该在前面提到您首先尝试做的事情。这不是做这些事情的有效方法。我建议提出一个新问题,但要明确定义您的最终目标以及数据包含的内容,例如前 10 行数据
    • 我的错。以后我会好好处理的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2023-01-23
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多