我有两个数据框。如下所示,第一列包含三列。
Col_1 Col_2 Col_3
aaa dfd ccc
sdf jjj sge
rty fgh rtg
hji dfg hyt
lkj bgh dcf
在每一行中,有一个元素与下面显示的SECOND数据框中的元素之一相同(当然,第二个数据框中的元素不必具有任何特定顺序)。
list
ccc
sge
fgh
dfg
dcf
我的目标是遍历FIRST数据帧中的每一行,并找到与SECOND数据帧相同的元素。接下来,将该元素放在行的开头。预期结果如下:
预期结果
Col_1 Col_2 Col_3
ccc aaa dfd
sge sdf jjj
fgh rty rtg
dfg hji hyt
dcf lkj bgh
任何帮助将不胜感激 !!
为什么不尝试使用apply
,isin
并tolist
:
print(df.apply(lambda x: x[x.isin(ls)].tolist() + x[~x.isin(ls)].tolist(), axis=1))
输出:
col1 col2 col3
0 ccc aaa dfd
1 sge sdf jjj
2 fgh rty rtg
3 dfg hji hyt
4 dcf lkj bgh
我简单地加载每一行并获得其中的一行并将ls
其设为第一个值,方法是使用isin
andtolist
和将其余部分添加到末尾,而将其自身作为第一行+
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句