每周更新一次的熊猫

发布于 2021-01-29 15:00:37

我每周有一些设备的日志数据。对于某些设备,它从星期一开始,对于某些设备,它在星期三开始,等等。有时此数据中有〜月的间隔,但是我希望DataFrame索引仍然包含每周具有NaN值的行。

我正在尝试asfreq('W')在Python中使用,但是我无法获得期望的结果。

例:

是)我有的:

Date            Some_Value
====            ==========
2019-04-10      2
2019-04-17      1
2019-04-24      3
2019-05-01      1
2019-05-08      3
2019-05-15      2
2019-06-06      3
2019-06-13      2

我期望/想要的(请注意带有NaN的2个新行):

Date            Some_Value
====            ==========
2019-04-10      2
2019-04-17      1
2019-04-24      3
2019-05-01      1
2019-05-08      3
2019-05-15      2
2019-05-22      NaN
2019-05-30      NaN
2019-06-06      3
2019-06-13      2

我得到的是asfreq('W')

Date            Some_Value
====            ==========
2019-03-31      NaN
2019-04-07      NaN
2019-04-14      NaN
...................

因此,我获得NaN了每个星期日的所有值和日期。但是我不需要每个星期天的日期。我需要获取DataFrame的第一个日期(groupby在很多时间序列的情况下,是大熊猫组中第一行的日期),并每周从该第一行重新采样。

用熊猫直接可以实现asfreq吗?用其他的熊猫方法吗?还是应该使用一些更复杂的自定义功能?

谢谢。

关注者
0
被浏览
89
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    问题在于您的数据是星期三的第一个值,星期四的最后两个,所以asfreq返回NaNs,因为尝试将其更改为Sunday weekday freq-
    docs

    W-SUN每周频率(星期日)。与 “ W”* 相同 *

    一种可能的解决方案,但DatetimeIndex周日更改:

    print (df.resample('W').first())
                Some_Value
    Date                  
    2019-04-14         2.0
    2019-04-21         1.0
    2019-04-28         3.0
    2019-05-05         1.0
    2019-05-12         3.0
    2019-05-19         2.0
    2019-05-26         NaN
    2019-06-02         NaN
    2019-06-09         3.0
    2019-06-16         2.0
    

    如果改变频率asfreq

    print (df.asfreq('W-Wed'))
                Some_Value
    Date                  
    2019-04-10         2.0
    2019-04-17         1.0
    2019-04-24         3.0
    2019-05-01         1.0
    2019-05-08         3.0
    2019-05-15         2.0
    2019-05-22         NaN
    2019-05-29         NaN
    2019-06-05         NaN
    2019-06-12         NaN
    
    print (df.asfreq('W-Thu'))
                Some_Value
    Date                  
    2019-04-11         NaN
    2019-04-18         NaN
    2019-04-25         NaN
    2019-05-02         NaN
    2019-05-09         NaN
    2019-05-16         NaN
    2019-05-23         NaN
    2019-05-30         NaN
    2019-06-06         3.0
    2019-06-13         2.0
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看