【发布时间】:2022-11-30 19:25:26
【问题描述】:
我正在寻找计算以下数据集的第一个和最后一个非 na 值之间的百分比增加或减少:
| Year | Company | Data |
|---|---|---|
| 2019 | X | 341976.00 |
| 2020 | X | 1.000 |
| 2021 | X | 282872.00 |
| 2019 | Y | NaN |
| 2020 | Y | NaN |
| 2021 | Y | NaN |
| 2019 | Z | 4394.00 |
| 2020 | Z | 173.70 |
| 2021 | Z | 518478.00 |
因为我想要相对变化,所以我希望公式能做类似的事情:
(last non-na value)/(first non-na value)-1
这应该返回如下内容:
| Year | Company | Data | Data |
|---|---|---|---|
| 2019 | X | 341976.00 | NaN |
| 2020 | X | 1.000 | NaN |
| 2021 | X | 282872.00 | -0.17 |
| 2019 | Y | NaN | NaN |
| 2020 | Y | NaN | NaN |
| 2021 | Y | NaN | NaN |
| 2019 | Z | 4394.00 | NaN |
| 2020 | Z | 173.70 | NaN |
| 2021 | Z | 518478.00 | 11.700 |
我曾尝试将基于公司字段的 groupby 与 first_valid_index 结合使用,但还没有找到解决方案。计算上述相对变化的最有效方法是什么?
【问题讨论】: