python实现通信频次统计(两列数据按行合并计数)

计算两者之间的通信频次,也就是将两列数据按行进行合并,并计数,使用python实现

FromTo
AB
BA
AC
CA
AB
我的解答思路和尝试过的方法

groupby函数实现了完全相同行的合并和技术,但位置交换的行未实现合并,希望能使B到A也合并到A到B的计次结果

    temp = [[name[0],name[1],len(group)] for name,group in df.groupby(['From','To'])]
    data_re = pd.DataFrame(temp,columns=['From','To','Count'])
FromToCount
AB2
AC1
BA1
CA1
我想要达到的结果
FromToCount
AC2
AB3

望采纳,已写好代码如下

# 首先需要导入相关的包
import pandas as pd

# 定义dataframe,包含from和to两列
df = pd.DataFrame({'From': [1, 1, 2, 3, 3, 3, 4, 4, 5], 'To': [3, 5, 5, 1, 2, 4, 5, 3, 4]})

# 计算两者之间构建的pair计数,from和to调换顺序也算同一个pair
# 首先将from和to两列进行排序
df[['From', 'To']] = df[['From', 'To']].apply(lambda x: sorted(x), axis=1)
# 然后按照from和to两列分组,并统计每组的个数
result = df.groupby(['From', 'To']).size()
# 最后输出统计结果
print(result)