python - 使用 pandas 计算来自 df 的节点之间的社交距离
问题描述
我想创建一个数据框来指示专利之间的社会距离。我已经有一个显示(共同)发明人和专利的附属网络的数据框。这个想法是根据附属发明人计算连接两个专利的最小节点数(专利)。例如,同一发明人 A 正在研究 P1 和 P2,因此距离应该为 0。P3 和 P1 之间的距离将为 1,因为 A (P1) 与 C 在 P2 上工作,C 在 P3 上工作。但是,仅当目标(种类)专利比源专利年轻时才应计算距离,例如,不应包括从 P3 到 P1 的距离。Inventor_id 和 Patent_id 是真实数据集中的 int 值。
>>> import pandas as pd
>>> df_affiliation = pd.DataFrame({'inventor_id':['A','A','B','B','C','C','D'],
... 'patent_id':['P1','P2','P1','P4','P2','P3','P3','P5'],
... 'year':[1986,1987,1986,1989,1987,1988,1988]})
>>> df_affiliation
inventor_id patent_id year
0 A P1 1986
1 A P2 1987
2 B P1 1986
3 B P4 1989
4 C P2 1987
5 C P3 1988
6 D P3 1988
新的数据框应如下所示:
>>> df_distance = pd.DataFrame({'source_patent_id':['P1','P1','P1','P2','P2','P3'],
... 'destination_patent_id':['P2','P3','P4','P3','P4','P4'],
... 'distance':[0,1,0,0,1,2]})
>>> df_distance
source_patent_id destination_patent_id distance
0 P1 P2 0
1 P1 P3 1
2 P1 P4 0
3 P2 P3 0
4 P2 P4 1
5 P3 P4 2
为了使潜在的社会联系更清晰,请参阅 Singh (2005) 的说明。协作网络作为知识扩散模式的决定因素1.
解决方案
推荐阅读
- azure-devops - 在 Azure Devops 中使用多存储库 CI 设置确定触发分支
- php - PHP:重命名命名空间会导致“找不到类”
- mysql - 数据库设计——我需要多细化?
- libreoffice-calc - 寻找数学函数以找到最高可能和
- react-native - indexOf 的本机基础手风琴错误不是函数
- json - BigQuery 无效的 JSON
- perl - 使用 Perl 将 CSV 文件转换为 XML
- vb.net - 在 UserConrol 中使用时 DataGridView 不显示单元格控件
- c++ - 该流程的最低申请数量?
- blazor - 如何在 Visual Studio 中调试服务器托管的 Blazor WASM 代码隐藏文件?