3 回答

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
然后嘗試使用tuple
+set
factorize
df['pair'] = df.apply(lambda x : tuple(set(x)),1).factorize()[0]+1 Out[69]: array([1, 2, 1, 2], dtype=int64)

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
您可以對(duì)數(shù)據(jù)進(jìn)行排序并使用groupby().ngroup():
df['pair'] = (pd.DataFrame(np.sort(df, axis=1))
.groupby([0,1], sort=False).ngroup() + 1
)
輸出:
src dest pair
0 LV NC 1
1 LA NY 2
2 NC LV 1
3 NY LA 2

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
您可以按以下方式分組frozenset:
df['pair'] = df.groupby(df.apply(frozenset, axis=1)).ngroup() + 1
print(df)
印刷:
src dest pair
0 LV NC 1
1 LA NY 2
2 NC LV 1
3 NY LA 2
添加回答
舉報(bào)