对于每个工厂/产品,我想为日期范围内的每个缺失日期添加一条记录。该范围基于最小/最大日期,与工厂/产品无关。然后,对于每个工厂/产品,我希望为每个新记录填写数量
这是我最初的熊猫数据帧的一个示例。我想把这个转过来:
Plant Product Date Qty
Austin A 2019-08-30 500
Austin A 2019-09-01 700
Austin A 2019-09-03 600
Austin B 2019-08-31 2000
Austin B 2019-09-02 2100
Austin B 2019-09-04 2200
Boston A 2019-08-31 50
Boston A 2019-09-02 60
为此:
Plant Product Date Qty
Austin A 2019-08-30 500
Austin A 2019-08-31 500
Austin A 2019-09-01 700
Austin A 2019-09-02 700
Austin A 2019-09-03 600
Austin A 2019-09-04 600
Austin B 2019-08-31 2000
Austin B 2019-09-01 2000
Austin B 2019-09-02 2100
Austin B 2019-09-03 2100
Austin B 2019-09-04 2200
Boston A 2019-08-31 50
Boston A 2019-09-01 50
Boston A 2019-09-02 60
Boston A 2019-09-03 60
Boston A 2019-09-04 60
在堆栈溢出postPandas filling missing dates and values within group中有一个解决方案,很接近, 但似乎只有在存在两个字段(除日期和数量/值外)时才起作用。当我尝试以下方法时:
ICG=ICG.set_index(
['Date', 'Plant', 'Product']).unstack().asfreq('D').stack().sort_index(level=1).reset_index()
我在asfreq()函数上收到一条错误消息:
TypeError: Cannot convert input [(Timestamp('2019-08-30 00:00:00'), 'Austin')] of type <class 'tuple'> to Timestamp
将
Date
列转换为日期时间数据类型。unstack
和stack
解决方案可适用于双unstack
,如下所示相关问题 更多 >
编程相关推荐