Python 熊猫:计算订单日期之间的消耗率

Python 熊猫:计算订单日期之间的消耗率,python,pandas,Python,Pandas,我的熊猫数据框如下所示: | House | CheckDate | Reading | OrderDate | OrderedQuantity | DeliveryDate | DeliveredQuantity | ------------------------------------------------------------------------------------------------ | A | 2020-01-01| 43.21 | NaT |

我的熊猫数据框如下所示:

| House | CheckDate | Reading | OrderDate | OrderedQuantity | DeliveryDate | DeliveredQuantity |
------------------------------------------------------------------------------------------------
|   A   | 2020-01-01|  43.21  |    NaT    |      NaN        |    NaT       |        NaN        |
|   A   | 2020-01-02|  43.06  |    NaT    |      NaN        |    NaT       |        NaN        |
|   A   | 2020-01-03|  42.97  |    NaT    |      NaN        |    NaT       |        NaN        |
---
|   A   | 2020-05-01|  9.82   | 2020-05-01|      50         |    NaT       |        NaN        |
|   A   | 2020-05-02|  9.65   |    NaT    |      NaN        |    NaT       |        NaN        |
---
|   A   | 2020-05-15|  0.23   |    NaT    |      NaN        |    NaT       |        NaN        |
|   A   | 2020-05-15|  25.94  |    NaT    |      NaN        |  2020-05-15  |        50         |
|   A   | 2020-05-16|  49.71  |    NaT    |      NaN        |    NaT       |        NaN        |
---
|   A   | 2020-06-17|  6.57   | 2020-06-17|      50         |    NaT       |        NaN        |
---
|   A   | 2020-07-03|  9.65   |    NaT    |      NaN        |    NaT       |        NaN        |
对于每家每户,每天都要进行一次阅读,这是指在特定的一天,某一特定材料的剩余量。CheckDate是读取数据的日期。我正试图计算订货日期之间房屋消耗的材料量。对于这个特殊的房子,总共有4个订单和4次交货。交货可能发生在两次下单之间,因此每次交货时,读数都会增加

我需要计算订单日期之间每天的材料消耗量。这不仅仅是考虑第一个订单日期和最后一个订单日期的读数之间的差异

从数学上解释,第一个和最后一个订单日期之间的总消耗量等于(所有交付数量的总和+第一个订单日期的读数-最后一个订单日期的读数)。这除以第一个订单日期和最后一个订单日期之间的总天数将得出每天的消耗量

我是Python新手。这就是我在SQL中所做的

SELECT SUM(Reading) As Sum_Of_Del_Quant FROM table
WHERE House = A AND DeliveryDate != "NaT";

SELECT DATEDIFF(MAX(OrderDate), MIN(OrderDate) AS Number_of_days FROM table
WHERE House = A;

SELECT Reading AS Value_on_First_Order_Date FROM table 
WHERE House = A AND OrderDate=(SELECT MIN(OrderDate) FROM table WHERE House = A); 

SELECT Reading AS Value_on_Last_Order_Date FROM table 
WHERE House = A AND OrderDate=(SELECT MAX(OrderDate) FROM table WHERE House = A);
有人能解释一下如何在Python中实现这一点吗


请参阅下面我对如何进行数学计算的评论。出于某种奇怪的原因,我不允许在这里的帖子中包含这条信息。

我想添加另一条关于如何计算每天消耗量的信息:假设4次交付50公斤的数量;所有交付数量的总和为200 |第一次订单日期的读数=9.82 |最后一次订单日期的读数=22.11 |第一次订单日期和最后一次订单日期之间的天数=161 |每天的消耗量=(200+9.82-22.11)/161 |出于某种奇怪的原因,我不允许将此包含在主要帖子中。df[df.OrderedDate>“2020-01-01”&df.ordereddate也可以看到这个答案,谢谢你的提示。我在同一个主题上有一个稍微不同的问题。如果我不知道确切的日期怎么办?忘记总数。假设我想查看第一个订单日期、第一个交货日期前一天、第二个订单日期和第三个订单日期前一天的读数e第二次交货日期,等等。有没有办法自动调用日期?df[df.OrderDate==df.OrderDate.head(1)]。阅读。从这里学习