通过 pandas 数据框中的单独计数列聚合重复的起始值和目标值来创建新数据框

Create a new dataframe by aggregating repeated origin and destination values by a separate count column in a pandas dataframe

我无法分析 pandas 数据框中的起点-终点值,该数据框包含 origin/destination 列和这些列的频率计数列。我想将其转换为一个数据框,其中包含离开和进入的人数:

初始:

    Origin  Destination  Count

    A       B            7
    A       C            1
    B       A            1
    B       C            4
    C       A            3
    C       B            10

例如,这个简化的数据框有 7 个从 A 离开到 B,1 个从 A 到 C,所以总体离开 A 的位置是 8,进入 A 的位置是 4(B - A 是 1,C - A 是3) 等等。新数据框看起来像这样。

目标:

   Place   Entering  Leaving

   A       4         8
   B       17        5
   C       5         13

我已经尝试了多种技术,例如 .groupby() 但尚未创建我想要的数据框。我如何处理 origin/destination 列中的重复值并将它们分配给新的数据框,其聚合值仅为离开和进入的计数?

谢谢!

使用双 groupby + concat:

a = df.groupby('Destination')['Count'].sum()
b = df.groupby('Origin')['Count'].sum()

df = pd.concat([a,b], axis=1, keys=('Entering','Leaving')).rename_axis('Place').reset_index()
print (df)
  Place  Entering  Leaving
0     A         4        8
1     B        17        5
2     C         5       13

pivot_table 然后做 sum

df=pd.pivot_table(df,index='Origin',columns='Destination',values='Count',aggfunc=sum)
pd.concat([df.sum(0),df.sum(1)],1)

Out[428]: 
      0     1
A   4.0   8.0
B  17.0   5.0
C   5.0  13.0