我的DataFrame df
如下:
idx colA colB colC colD
-----------------------------------
A1 foo1 bar1
A2 foo2 bar2
我想将A2
的数据从colC:colD
复制/移动到colA:colB
:
idx colA colB colC colD
-----------------------------------
A1 foo1 bar1
A2 foo2 bar2
我认为它很简单,尝试了df.loc['A2','colA':'colB'] = df.loc['A2','colC':'colD']
,但没有用。
但是,我能够一一做到。例如,df.loc['A2','colA'] = df.loc['A2','colC']
确实将colA
更改为foo2
。我还可以使用切片表达式colA
为colB
和df.loc['A2','colA':'colB'] = 'FB'
分配新值:
idx colA colB colC colD
-----------------------------------
A1 foo1 bar1
A2 FB FB
出了什么问题?
答案 0 :(得分:1)
如果两个选择中的列数相同,则将第二个Series转换为numpy数组:
df.loc['A2','colA':'colB'] = df.loc['A2','colC':'colD'].to_numpy()