Python 如何基于Pandas中的第三列将值从一列复制到另一列?

Python 如何基于Pandas中的第三列将值从一列复制到另一列?,python,pandas,dataframe,Python,Pandas,Dataframe,下面是一个示例数据框: A B C D 0 1 2 Red 1 4 5 Blue 2 7 8 Red 输出 A B C D 0 1 2 Red 1 1 4 5 Blue 5 2 7 8 Red 7 A B C D 0 1 2 red 1 1 4 5 blue 5 2 7 6 red 7 我尝试使用a列或B列中的值填充D列,具体取决于C中的内容 例如,

下面是一个示例数据框:

   A  B     C D
0  1  2   Red  
1  4  5  Blue  
2  7  8   Red  
输出

   A  B     C  D
0  1  2   Red  1
1  4  5  Blue  5
2  7  8   Red  7
   A  B     C  D
0  1  2   red  1
1  4  5  blue  5
2  7  6   red  7
我尝试使用a列或B列中的值填充D列,具体取决于C中的内容

例如,如果对于第一行,因为C=红色,我想用A中的内容填充D。如果C=蓝色,我想用B中的内容填充D

df.loc[df['C'] == 'Red', 'D'] =   df['A']
df.loc[df['C'] == 'Blue', 'D'] =  df['B']
我想我已经把左边的作业记下来了,但是在右边的作业中,我很难引用同一行。尝试避免手动循环,并在一定程度上有效地执行此操作。

一种方法是使用

输出

   A  B     C  D
0  1  2   Red  1
1  4  5  Blue  5
2  7  8   Red  7
   A  B     C  D
0  1  2   red  1
1  4  5  blue  5
2  7  6   red  7

您设置它的方式将自动循环。loc[df['C']='Red','D']=df['A']将在每一行中循环。你写得很有效率。

嗨,也许可以映射值
df['D']=np。选择([df['C']='Red',df['C']='Blue'],[df['A'],df['B']],np.nan)
@这是克里斯,谢谢你,这是我最好的解决方案。