【发布时间】:2020-10-23 07:02:35
【问题描述】:
假设我有一张如下表。每行代表一个群组,每列代表一个时间段。有些值是 nan,因为该时间段尚未发生。
对于每一列,我想获得前四个值的平均值(不包括 nan)。有没有简单的方法可以在 pandas 中实现这一点?
| name | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|----------|----:|-----------:|------------:|-----------:|-------------:|-------------:|------------:|-------------:|-------------:|-------------:|-------------:|-------------:|
| 2019 | nan | -0.0127273 | -0.0202578 | -1 | nan | nan | nan | nan | nan | nan | nan | nan |
| 2018 | nan | -0.0245184 | -0.0143627 | -0.0309654 | -0.0131579 | -0.0171429 | -1 | nan | nan | nan | nan | nan |
| 2017 | nan | -0.0122807 | -0.00888099 | -0.0340502 | -0.0222635 | -0.0151803 | -0.0346821 | 0.011976 | -0.0118343 | -1 | nan | nan |
| 2016 | nan | -0.0196429 | -0.010929 | -0.0570902 | -0.0195312 | 0.00199203 | -0.027833 | -0.0102249 | -0.0103306 | 0.00835073 | -0.00828157 | -0.0605428 |
| 2015 | nan | -0.0158451 | -0.0125224 | -0.0525362 | -0.0114723 | -0.0154739 | -0.0314342 | -0.00811359 | -0.00817996 | -0.00206186 | 0.00206612 | -0.0206186 |
| 2014 | nan | -0.0175439 | -0.00892857 | -0.0486486 | -0.00757576 | -0.0114504 | -0.030888 | -0.0059761 | -0.0140281 | 0.0121951 | -0.00803213 | -0.0425101 |
| 2013 | nan | -0.0250447 | -0.00550459 | -0.0682657 | -0.0158416 | -0.00402414 | -0.0323232 | -0.0167015 | -0.00212314 | -0.0191489 | 0.0021692 | -0.017316 |
| 2012 | nan | -0.0118443 | -0.00171233 | -0.0703259 | -0.00184502 | 0.00554529 | -0.0294118 | -0.00757576 | -0.00763359 | -0.00769231 | -0.00387597 | 0.00194553 |
| 2011 | nan | -0.0174825 | -0.0106762 | -0.0377698 | -0.0261682 | -0.00767754 | -0.0174081 | -0.015748 | -0.004 | -0.0200803 | 0.00409836 | -0.0285714 |
| 2010 | nan | -0.0234657 | -0.00369686 | -0.0352505 | -0.0269231 | 0.00395257 | -0.019685 | -0.0100402 | -0.00608519 | -0.0102041 | -0.0123711 | -0.00626305 |
【问题讨论】:
标签: pandas