尝试将ID分配给pandas DataFrame中的对,结果不一致

问题描述

我有一个df:

df = pd.DataFrame({'src':['LV','LA','NC','NY','ABC','XYZ'],'dest':['NC','LV','XYZ','ABC'],'dummy':[1,3,6,7,8,10]})
src   dest   dummy
LV      NC       1
LA      NY       3
NC      LV       6
NY      LA       7
ABC     XYZ      8
XYZ     ABC     10

我通过以下方式运行它:

df['pair'] = df[['src','dest']].apply(lambda x : tuple(set(x)),1).factorize()[0] + 1

尝试取消唯一对,例如(a-> b,b-> a)

我正确地以这个结尾:

src   dest   dummy  pair
LV      NC       1     1
LA      NY       3     2
NC      LV       6     1
NY      LA       7     2
ABC     XYZ      8     3
XYZ     ABC     10     3

但是,有时当我运行它时,我最终会出错:

 src   dest   dummy  pair
LV      NC       1     1
LA      NY       3     2
NC      LV       6     1
NY      LA       7     2
ABC     XYZ      8     3
XYZ     ABC     10     4

如您所见,由于某种原因,最后一个元素未正确配对为“ 3”。这是随机发生的。我可以通过注释掉“配对”代码,运行脚本以制作和打印df,然后取消注释并再次尝试来重现此代码。通过运行其他修改,您也许可以通过其他方式重现此内容。

如何解决这种不确定性行为?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)