【问题标题】:Pandas Dataframe to subtract the values with Previous Executed ValuePandas Dataframe 用先前的执行值减去值
【发布时间】:2022-12-14 12:26:36
【问题描述】:

我想从总计数中减去第一行的值
测试用例和具有执行计数结果的剩余值。

       **Input:**
       Date Count
       17-10-2022   20
       18-10-2022   18
       19-10-2022   15
       20-10-2022   10
       21-10-2022   5
   
       **Code:**
       df['Date'] = pd.to_datetime(df['Date'])
       edate = df['Date'].max().strftime('%Y-%m-%d')
       sdate = df['Date'].min().strftime('%Y-%m-%d')
       df['Date'] = pd.to_datetime(df['Date']).apply(lambda x: x.date())
       df=df.groupby(['Date'])['Date'].count().reset_index(name='count')
       df['result'] = Test_case - df['count'].iloc[0]
       df['result'] = df['result'] - df['count'].shift(1)

       **Output generating:**
       Date  count  result
       0  2022-10-17     20     NaN
       1  2022-10-18     18    40.0
   
       **Expected Output:**
       Date Count   Result  
       17-10-2022   20  60(80-20) - 80 is the total Test case count for example
       18-10-2022   18  42(60-18)
       19-10-2022   15  27(42-15)
       20-10-2022   10  17(27-10)
       21-10-2022   5   12(17-5)

【问题讨论】:

    标签: pandas


    【解决方案1】:

    80是一个任意数字吗?然后使用以下代码:

    n = 80
    df.assign(Result=df['Count'].cumsum().mul(-1).add(n))
    

    输出:

        Date      Count Result
    0   17-10-2022  20  60
    1   18-10-2022  18  42
    2   19-10-2022  15  27
    3   20-10-2022  10  17
    4   21-10-2022  5   12
    

    你可以改变 n

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      • 2020-06-25
      相关资源
      最近更新 更多