我有这样的DataFrame:
A B C
"010-1" "Car" 500
"010-2" "Train" 302
"Result" "010" 23
"011-1" "Ship" 321
"011-2" "Plane" 321
"011-3" "Bike" 321
"Result" "011" 321
现在可以使用Pandas将A
和B
的列移动到"Result"
列中的A
值了吗?
所以最终结果是:
A B C
"010-1" "Car" 500
"010-2" "Train" 302
"010" "Result" 23
"011-1" "Ship" 321
"011-2" "Plane" 321
"011-3" "Bike" 321
"011" "Result" 321
编辑:实际上,除了A和B之外,列可能多于一列。
答案 0 :(得分:2)
您可以使用numpy函数entity_id
:
原始数据框:
where()
命令:
(使用通用的Python模式In[6]: df
Out[6]:
A B C
0 010-1 Car 500
1 010-2 Train 302
2 Result 010 23
3 011-1 Ship 321
4 011-2 Plane 321
5 011-3 Bike 321
6 Result 011 321
来切换值)
x, y = y, x
结果:
In[7]: cond = df.A == "Result"
In[8]: df.A, df.B = np.where(cond, df.B, df.A), np.where(cond, df.A, df.B)
答案 1 :(得分:1)
长手使用np.where
<div id="startModal" class="startModal">
<div class="choice" style="top:10px;background-color:red">Option 1</div>
<div class=" choice" style="top:20px;background-color:green">Option 2</div>
<div class=" choice" style="top:30px;background-color:blue">Option 3</div>
</div>
答案 2 :(得分:1)
尝试:
df['A'],df['B'] =df['A'].combine(df['B'],lambda x,y : [x,y] if x != 'Result' else [y,x]).str