This question already has answers here:
Pandas DataFrame: replace all values in a column, based on condition
(4个答案)
9个月前关闭。
我有一个PandaDataframe,其中包含有关许多已下订单及其时间的信息。此数据适用于从11:00 am-1:00 am开始营业的餐厅。
dataFrame的名称为“ DfPayments”。
它有两列DfPayments ['hour']和DfPayments ['day'],其中包含有关下订单的日期和小时的信息。在汇总日销售量时,在午夜之后下达的某些订单将计入第二天的销售量。因此,我想为小时创建一个新变量,并使用它来相应地调整销售额。但是,当我使用以下代码时,出现错误。
错误是:
---> 18,如果DfPayments ['hour'] == 0:
19 DfPayments ['newhour'] = DfPayments ['newhour']-1
1574提高ValueError(“ {0}的真值不明确。
“ 1575”使用a.empty,a.bool(),a.item(),
a.any()或a.all()。”
-> 1576 .format(self.class.name))1577 1578 bool =非零
(4个答案)
9个月前关闭。
我有一个PandaDataframe,其中包含有关许多已下订单及其时间的信息。此数据适用于从11:00 am-1:00 am开始营业的餐厅。
dataFrame的名称为“ DfPayments”。
它有两列DfPayments ['hour']和DfPayments ['day'],其中包含有关下订单的日期和小时的信息。在汇总日销售量时,在午夜之后下达的某些订单将计入第二天的销售量。因此,我想为小时创建一个新变量,并使用它来相应地调整销售额。但是,当我使用以下代码时,出现错误。
if DfPayments['hour'] == 0:
DfPayments['newhour'] = DfPayments['newhour'] - 1
错误是:
---> 18,如果DfPayments ['hour'] == 0:
19 DfPayments ['newhour'] = DfPayments ['newhour']-1
1574提高ValueError(“ {0}的真值不明确。
“ 1575”使用a.empty,a.bool(),a.item(),
a.any()或a.all()。”
-> 1576 .format(self.class.name))1577 1578 bool =非零
最佳答案
使用布尔索引:
idx = DfPayments['hour']==0
DfPayments.loc[idx, 'newhour'] = DfPayments.loc[idx, 'newhour'] - 1
09-27 20:47