我想知道如何计算两个字符串的给定组合,而不管哪个字符串是第一个/第二个。你知道吗
这是我的密码:
import pandas as pd
mylist = [[('Smith JR', 'Kim YY'), ('Smith JR', 'Ron AA'), ('Kim YY', 'Ron AA')],
[('Kim YY', 'Smith JR')], [('Smith JR', 'Ron AA')]]
flat_list = [item for sublist in mylist for item in sublist]
df = pd.DataFrame(flat_list, columns=["From", "To"])
df_graph = df.groupby(["From", "To"]).size().reset_index()
df_graph.columns = ["From", "To", "Count"]
print(df_graph)
它给出:
From To Count
0 Kim YY Ron AA 1
1 Kim YY Smith JR 1
2 Smith JR Kim YY 1
3 Smith JR Ron AA 2
但由于金YY小史密斯和金YY小史密斯在同两个人之间形成了一种联系,我希望它能给予:
From To Count
0 Kim YY Ron AA 1
1 Kim YY Smith JR 2
2 Smith JR Ron AA 2
我见过许多解决方案,它们删除了重复的行,但没有按照我的意愿合并每行的计数。我好像不知道怎么把
1 Kim YY Smith JR 1
2 Smith JR Kim YY 1
行,这样就只剩下Kim YY-Smith JR行,并且计数是2。另外,在我的实际数据中,给定行的计数可以大于1。你知道吗
快而脏
但没那么脏
在添加到数据帧之前,将这两列排序在一起,这样就可以保证一对只按特定顺序出现。然后才应用你的计数方法。使用link中的方法进行排序:
相关问题 更多 >
编程相关推荐