我正在尝试从pandas数据框中获取组合数量,在该数据框中,反向组合的形式相同。即(A / B与B / A相同)
类似于该用户尝试执行的操作,但是在python / pandas上
How to get count of two-way combinations from two columns?
感谢您的帮助!
我已经研究了交叉表并对数据进行分组,它产生了组合的数量,但是它把相反的顺序视为唯一的组合。
Origin Destination
City 1 City 2
City 2 City 1
City 3 City 4
City 2 City 1
最终结果将类似于
Route Count
City 1 - City 2 3
City 3 - City 4 1
注意:路线的顺序无关紧要。只要它是相同的,它就可以是城市2-城市1。
答案 0 :(得分:1)
您可以使用php -m|grep grpc
np.sort
您还可以构造一个新排序的import numpy as np
import pandas as pd
df['Route'] = [' - '.join(x) for x in np.sort(df.to_numpy(), axis=1)]
df.groupby('Route').size()
#Route
#City 1 - City 2 3
#City 3 - City 4 1
#dtype: int64
,这可能会有用:
DataFrame
现在您可以按df = pd.DataFrame(np.sort(df.to_numpy(), axis=1), index=df.index, columns=df.columns)
# Origin Destination
#0 City 1 City 2
#1 City 1 City 2
#2 City 3 City 4
#3 City 1 City 2
答案 1 :(得分:1)
使用sort
df.values.sort()
df.groupby(list(df)).size()
Origin Destination
City1 City2 3
City3 City4 1
dtype: int64