要根据python中的特定条件将一列中的值替换为另一列中的值吗

要根据python中的特定条件将一列中的值替换为另一列中的值吗,python,pandas,Python,Pandas,我想用该行下一列的值替换ABC。若ABC位于最后一列,则该值应来自上一列。如果存在nan,则不应将其替换为任何其他值。事实上,我们必须在nan出现之前进行此操作 数据帧如下所示: C1 C2 C3 ……. C47 C48 C49 C50 1 0 ABC 15 ……. 29 ABC 90 50 2 ABC ABC 7 ……. 26 10 ABC 30 3 ABC ABC ABC ……. ABC ABC ABC ABC 4 6 20 32 ……

我想用该行下一列的值替换ABC。若ABC位于最后一列,则该值应来自上一列。如果存在nan,则不应将其替换为任何其他值。事实上,我们必须在nan出现之前进行此操作

数据帧如下所示:

    C1  C2  C3  ……. C47 C48 C49 C50
1   0   ABC 15  ……. 29  ABC 90  50
2   ABC ABC 7   ……. 26  10  ABC 30
3   ABC ABC ABC ……. ABC ABC ABC ABC
4   6   20  32  ……. 18  44  ABC ABC
5   2   ABC 24  ……. 16  27  29  ABC
6   23  4   49  ……. 11  52  33  9
7   17  12  2   ……. ABC 31  nan nan
8   ABC nan nan ……. nan nan nan nan
9   34  36  2   ……. 19  ABC nan nan
输出应为:

    C1  C2  C3  ……. C47 C48 C49 C50
1   0   15  15  ……. 29  90  90  50
2   7   7   7   ……. 26  10  30  30
3   0   0   0   ……. 0   0   0   0
4   6   20  32  ……. 18  44  44  44
5   2   24  24  ……. 16  27  29  29
6   23  4   49  ……. 11  52  33  9
7   17  12  2   ……. 31  31  nan nan
8   0   nan nan ……. nan nan nan nan
9   34  36  2   ……. 19  19  nan nan

请注意,只有当该特定行的其余列中没有值时,ABC才会为0。

为什么在第4行中ABC被分配为44而不是0?荒谬的逻辑!!你说过你想要下一列的值!第五排的ABC是24,而不是2。您如何决定从哪一列获取ABC的价值?右还是左?@KMM在处理逻辑运算时,定义良好且一致的规则非常重要(必要)。您对希望发生的事情的描述与提供的示例不匹配,这使得我们无法提供帮助(即,我们不知道您试图实现的逻辑是什么)。请清理您的示例,以便我们能够更好地提供帮助。@Nihal最初您必须从右侧选择值,如果右侧没有可用的值,您可以从左侧选择,如第5行所示。我认为这也应该解决关于第四排的问题。谢谢。@tnknepp我知道规则不一致,但这是进行分析的要求。让我更深入地解释一下。一旦nan开始出现,其他列中就不会出现其他值或ABC。然后,正如我向Nihal解释的那样,最初的值应该只从右侧列中选取,如果值在右侧不可用(如果ABC出现在第36列到第50列中),则只从左侧列中分配值。在所有列仅包含ABC的情况下,它将替换为0。