【发布时间】:2019-05-04 03:17:04
【问题描述】:
我试图弄清楚如何计算两个字符串的给定组合,而不管哪个字符串是第一个/第二个。
这是我的代码:
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
但由于 Kim YY Smith JR 和 Smith JR Kim 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。
【问题讨论】:
标签: python pandas pandas-groupby