python - 如何为熊猫中的链接对创建唯一的情侣ID
问题描述
我有一个将人们联系在一起的数据框。例如,
>>> import pandas as pd
>>> df = pd.DataFrame([[1,2],[2,1],[3,4],[5,6],[4,3],[6,5]], columns=['m_id', 'f_id'])
>>> df
m_id f_id
0 1 2
1 2 1
2 3 4
3 5 6
4 4 3
5 6 5
我的目标是创建第三列,为每对m_id
和创建一个唯一的 id f_id
。例如,以下所需的输出。
>>> df
m_id f_id shared_id
0 1 2 0
1 2 1 0
2 3 4 1
3 5 6 2
4 4 3 1
5 6 5 2
更新
这不是这个问题的重复,因为我不想从典型的 groupby 中取回组 ID。就我而言,我有两列,我想根据一行中的两个元素是否与其他行中的两个元素相同来分配一个组 ID,而忽略列的顺序。
解决方案
IIUC
pd.DataFrame(np.sort(df.values,1),index=df.index).groupby([0,1]).ngroup()
Out[94]:
0 0
1 0
2 1
3 2
4 1
5 2
dtype: int64
推荐阅读
- javascript - Angular HttpInterceptor:如何在多个条件下使用 RxJS
- java - Talend:将 oracle 输入保存到全局变量
- c# - C# MVC 将 DB2 添加到数据源列表
- php - YII2 我如何处理多对多关系?
- hyperledger-fabric - 在超级账本结构中创建组织单元时出错
- express - 如何在猫鼬中保存对象
- r - 提取 rcpp 中 arma::mat 矩阵的每 k 列
- android - payubiz 集成在 phonepe gradle 中显示错误
- listview - 在 SAPUI5 列表报表应用程序中,更新的值不会反映,直到重新加载列表
- xml - 如何让我的 XSLT 仅在元素存在时才显示它?