gpt4 book ai didi

python Pandas : How fill date ranges in a multiindex

转载 作者:太空狗 更新时间:2023-10-30 01:07:57 26 4
gpt4 key购买 nike

假设我正在尝试为成员(member)业务组织销售数据。

我只有开始日期和结束日期。理想情况下,开始日期和结束日期之间的销售额显示为 1,而不是缺失。

我无法用中间日期填充“日期”列。那就是:我想要一组连续的月份而不是间隔。另外,我需要使用 ffill 填充列中缺失的数据。

我尝试了不同的方法,例如堆栈/取消堆栈和重建索引,但出现了不同的错误。我猜有一种干净的方法可以做到这一点。执行此操作的最佳做​​法是什么?

假设多索引数据结构:

                 variable     sales
vendor date
a 2014-01-01 start date 1
2014-03-01 end date 1
b 2014-03-01 start date 1
2014-07-01 end date 1

和想要的结果

                   variable   sales
vendor date
a 2014-01-01 start date 1
2014-02-01 NaN 1
2014-03-01 end date 1
b 2014-03-01 start date 1
2014-04-01 NaN 1
2014-05-01 NaN 1
2014-06-01 NaN 1
2014-07-01 end date 1

最佳答案

你可以这样做:

>>> f = lambda df: df.resample(rule='M', how='first')
>>> df.reset_index(level=0).groupby('vendor').apply(f).drop('vendor', axis=1)
variable sales
vendor date
a 2014-01-31 start date 1
2014-02-28 NaN NaN
2014-03-31 end date 1
b 2014-03-31 start date 1
2014-04-30 NaN NaN
2014-05-31 NaN NaN
2014-06-30 NaN NaN
2014-07-31 end date 1

然后就是.fillna如果需要,在 sales 列上。

关于 python Pandas : How fill date ranges in a multiindex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27256653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com