【发布时间】:2022-01-02 10:43:05
【问题描述】:
我有一个 Pandas 数据框,其中包含几天的消耗量测量结果,因此给定日期的测量值代表前几天没有测量值的消耗量。对于每个消费者(一行),我有类似的东西
Nan, 10, Nan, Nan, Nan, Nan, Nan, Nan, 21, Nan, ...
表示10和20之间的平均消耗为21/7=3,即21除以(6个NaN加1)。
测量以不规则的间隔进行,因此我需要将每个测量除以它与前一个测量之间的 NaN 数。我希望上面示例的输出为Nan, 0.4347, Nan, Nan, Nan, Nan, Nan, Nan, 3, Nan, ...。第一次测量应该除以 23,但我可以生活得不正确。我怎样才能做到这一点?这是我的数据示例:
SP ID,2016-12-28,2016-12-29,2016-12-30,2016-12-31,2017-01-01,2017-01-03,2017-01-04,2017-01-05,2017-01-06,2017-01-09,2017-01-10,2017-01-11,2017-01-12,2017-01-13,2017-01-16,2017-01-17,2017-01-18,2017-01-19,2017-01-20,2017-01-21,2017-01-23,2017-01-24,2017-01-25,2017-01-26,2017-01-27,2017-01-29,2017-01-30,2017-01-31,2017-02-01,2017-02-02,2017-02-03,2017-02-06,2017-02-07,2017-02-08,2017-02-09,2017-02-10,2017-02-13,2017-02-14,2017-02-15,2017-02-16,2017-02-17,2017-02-18,2017-02-21,2017-02-22,2017-02-23,2017-02-24,2017-02-27,2017-02-28,2017-03-01,2017-03-02
100854,,,4.0,,,,,,,,,,,,,,,,,,,,,,,,,4.0,,,,,,,,,,,,,,,,,,,,3.0,,
120355,,,9.0,,,,,,,,,,,,,,,,,,,,,,,,9.0,,,,,,,,,,,,,,,,,,,,,,,9.0
200357,,,,,,,,,,,18.0,,,,,,,,,,,,,,,,,,,,,,,,22.0,,,,,,,,,,,,,,,
预期的输出如下(将第一次出现除以 23)。例如,我们有4.0/25=0.16。
SP ID,2016-12-28,2016-12-29,2016-12-30,2016-12-31,2017-01-01,2017-01-03,2017-01-04,2017-01-05,2017-01-06,2017-01-09,2017-01-10,2017-01-11,2017-01-12,2017-01-13,2017-01-16,2017-01-17,2017-01-18,2017-01-19,2017-01-20,2017-01-21,2017-01-23,2017-01-24,2017-01-25,2017-01-26,2017-01-27,2017-01-29,2017-01-30,2017-01-31,2017-02-01,2017-02-02,2017-02-03,2017-02-06,2017-02-07,2017-02-08,2017-02-09,2017-02-10,2017-02-13,2017-02-14,2017-02-15,2017-02-16,2017-02-17,2017-02-18,2017-02-21,2017-02-22,2017-02-23,2017-02-24,2017-02-27,2017-02-28,2017-03-01,2017-03-02
100854,,,0.17,,,,,,,,,,,,,,,,,,,,,,,,,0.16,,,,,,,,,,,,,,,,,,,,0.15,,
120355,,,0.391,,,,,,,,,,,,,,,,,,,,,,,,0.375,,,,,,,,,,,,,,,,,,,,,,,0.391
200357,,,,,,,,,,,0.78,,,,,,,,,,,,,,,,,,,,,,,,0.917,,,,,,,,,,,,,,
【问题讨论】:
-
请提供您期望的输出示例。
标签: python pandas dataframe nan