【发布时间】:2021-09-29 09:59:53
【问题描述】:
我有一个数据框,其中有一列字符串 id 列表。 (见下文)。 我想在所有行之间的所有成对“距离”之间创建一个距离矩阵 (例如,如果 10 行,那么它是一个 10x 10 矩阵)。 这些行是 id 列表,所以我不确定如何使用 pdist 之类的东西。
这些值是字符串 ID。就像字符串名称一样
ids
0 [58545-19, 462423-43, 277581-25]
1 [0]
2 [454950-82, 433701-46, 228790-63, 266250-52, 458759-98, 152986-78, 222217-39, 433515-16, 265589-83, 439403-23, 277892-38, 223497-19, 224072-83, 461887-57, 436147-12, 227479-78, 228893-32, 279415-18, 439426-27, 437742-46, 438156-73, 438458-68, 277898-05, 438675-76, 454658-95, 431222-77, 462579-94, 434939-86, 222211-09, 178215-13, 459566-11, 463200-04, 439278-94, 459505-18, 399139-66, 455735-62, 327382-03, 439040-62, 233779-51, 431387-38, 438589-72, 437892-49, 458178-76]
3 [431380-63]
4 [442539-01, 434388-16, 454950-82, 463197-61, 228893-32, 464322-07, 462579-94, 438781-51, 437273-11, 265395-79, 463560-76, 462525-31, 439426-27, 438458-68, 464300-38, 442676-80]
5 [234729-10, 435926-98, 416670-04, 179514-28]
6 [0]
7 [0]
8 [267726-25, 235217-71, 227314-72, 185293-18, 434447-56, 170271-19, 454661-20]
9 [0]
【问题讨论】:
-
计算距离的数值在哪里?? “58545-19”只是0索引中第一个列表的第一个元素中的一个ID吗?或距离的数值(58545-19=58526)??如果你使用 to_dict 方法,那么我们可以更容易地制作样本数据..
-
"58545-19" = 只是一个字符串 id。可以像人名一样被视为字符串。
-
那么您的数据是否具有与每个值对应的数值(即 58545-19)? OR 对应于列表的值(即 [58545-19, 462423-43, 277581-25])?
-
它们是字符串 id 的列表,它们恰好是数字,它们可以是任何 id 字符串,例如名称。所以他们可以重复(例如,相同的名字可以出现在其他集合中......因此目标是找到相似的集合。谢谢你!
-
在这种情况下,您如何定义“距离”?如果值只是 id,那么
d: string x string -> number是什么?另外,请添加预期输出的示例。
标签: pandas string list distance pdist