我有这个数据框:

              ano   id             unit period             Sales  ...
business_id
9564         2012  302                s  anual        5964168.52
9564         2011  303                k  anual        5774707.15
2361         2013  304                s  anual        3652575.31


对于每一行,如果单位为“ k”,我想将sales中所有接下来的列中的值乘以1000。该值应如下所示:

              ano   id             unit period             Sales  ...
business_id
9564         2012  302                s  anual        5964168.52
9564         2011  303                k  anual     5774707000.15
2361         2013  304                s  anual        3652575.31


->我想将其应用到专栏销售以及接下来的所有专栏中(因此这将是第四栏)

我该怎么办?

最佳答案

您不能将布尔索引与iloc混合使用,但是可以使用loc并从数据框中的列索引轻松实现相同的结果。

例如,要在上面的示例中从五个开始(只有一个)中获取与您的布尔选择匹配的每一列:

>>> df.loc[df['unit'] == 'k', df.columns[5:]]
        Sales
1  5774707.15

07-26 09:40