在两个数据帧之间进行迭代时更改数据帧中的值

时间:2019-07-31 16:15:32

标签: python pandas dataframe iteration

我有两个数据帧:SpringdfStaffTraindf2

我正在遍历Springdf的行以拉出字段AllocationStaffingStandardsValue(都是整数)和ArrivalMUkey(是字符串)。 / p>

然后我使用ArrivalMUkey查找StaffTraindf2,并检索两个变量CurrentAllocationStaffingStandardsValue2(都是整数)。

Springdf.Allocation < StaffingStandards and in StaffTraindf2 while CurrentAllocation < StaffingStandardsValue2上,向AllocationCurrentAllocation都添加+1。继续这样做,直到其中之一不再成立,然后移至Springdf的下一行。

AllocationCurrentAllocation始终从0开始。StaffingStandardsValue(2)的范围是1-100

我成功地编写了代码来完成Springdf中的任务,但是现在似乎无法正确地编写Traindf2中的值。我认为使用字符串CurrentAllocation作为索引时无法覆盖整数值StaffingStandardsValue2吗? (请问这听起来很荒谬)

以下代码将运行,但不会更改StaffTrain2中的值。它将它们全部保持为0。

for row in springdf.index:
    Aloc = springdf.at[row, 'Allocation']
    Train = springdf.at[row, 'StaffingStandardsValue']
    ArrivalMUkey = springdf.at[row,'ArrivalMUkey']
    TrainMax =  StaffTraindf2.loc[StaffTraindf2['ArrivalMUkey'] ==ArrivalMUkey, 'StaffingStandardsValue'].sum()
    TrainUtilized = StaffTraindf2.loc[StaffTraindf2['ArrivalMUkey'] ==ArrivalMUkey, 'CurrentAllocation'].sum()
    while Aloc < Train & TrainUtilized < TrainMax:
        springdf.at[row, 'Allocation'] = Aloc + 1
        Aloc = springdf.at[row, 'Allocation']
        StaffTraindf2.loc[StaffTraindf2['ArrivalMUkey']==ArrivalMUkey, 'CurrentAllocation'].sum() + 1 = TrainUtilized
        TrainUtilized = StaffTraindf2.loc[StaffTraindf2['ArrivalMUkey'] ==ArrivalMUkey, 'CurrentAllocation'].sum()
    else:
       next

0 个答案:

没有答案