在Python中,有没有一种方法可以根据另一列中的值动态地将列相乘?如果有区别的话,我会使用Polars。例如,如果calendar_year
是2018,我想将2018
、2019
、2020
和2021
列相乘,但如果calendar_year
是2019,我只想将列2019
、2020
和2021
相乘。我想将结果存储在一个名为product
的新列中。将来,我们将有更多的列,如2022
和2023
。所以我希望能够让我的公式说明这些新列,而不必每年进入代码库并手动将它们添加到我的产品中。
| 标识符|一个人。|日历年|二〇一七年|二〇一八年|二〇一九年|小行星2020|小行星2021|积|
| - -|- -|- -|- -|- -|- -|- -|- -|- -|
| 一百二十三|一个人。|二〇一八年|零点九九八|零点九九七|零点九九六|零点九九五|零点九九四|0.9801分|
| 四百五十六|一个人。|二〇一九年|零点九九三|零点九九二|0.991分|零点九九零|0.989分|0.9557分|
提前感谢您的帮助!
2条答案
按热度按时间lvjbypge1#
看起来您希望将超出
calendar_year
的所有年份的CY因子相乘,而不必为每一年更新此逻辑。如果是这种情况,避免对CY选择进行硬编码的一种方法是使用
melt
并过滤结果。第一个
从那里,您可以将结果联接回原始数据集(使用
id
列)。46scxncf2#
我想你可以用
np.where(condition,then,else)
函数来完成这个操作。你想用这个操作的结果创建一个新列吗?如果你能提供更多的细节就太好了:)