我有这个数据框:
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