簡體   English   中英

熊貓數據幀頻率

[英]Pandas dataframe frequencies

我有這個數據幀:

source target
0     ape    dog
1     ape   hous
2     dog   hous
3    hors    dog
4    hors    ape
5     dog    ape
6     ape   bird
7     ape   hous
8    bird   hous
9    bird   fist
10   bird    ape
11   fist    ape

我正在嘗試使用以下代碼生成頻率計數:

df_count =df.groupby(['source', 'target']).size().reset_index().sort_values(0, ascending=False)
df_count.columns = ['source', 'target', 'weight']

我得到下面的結果。

source target  weight
2     ape   hous       2
0     ape   bird       1
1     ape    dog       1
3    bird    ape       1
4    bird   fist       1
5    bird   hous       1
6     dog    ape       1
7     dog   hous       1
8    fist    ape       1
9    hors    ape       1
10   hors    dog       1

我如何修改代碼以使方向無關緊要,即代替ape bird 1bird ape 1 ,我得到ape bird 2

首先按行排序。

In [31]: df
Out[31]:
   source target
0     ape    dog
1     ape   hous
2     dog   hous
3    hors    dog
4    hors    ape
5     dog    ape
6     ape   bird
7     ape   hous
8    bird   hous
9    bird   fist
10   bird    ape
11   fist    ape

In [32]: df.values.sort()

In [33]: df
Out[33]:
   source target
0     ape    dog
1     ape   hous
2     dog   hous
3     dog   hors
4     ape   hors
5     ape    dog
6     ape   bird
7     ape   hous
8    bird   hous
9    bird   fist
10    ape   bird
11    ape   fist

然后,按source, target ,按大小聚合groupbysort結果進行sort

In [34]: df.groupby(['source', 'target']).size().sort_values(ascending=False)
    ...:   .reset_index(name='weight')
Out[34]:
  source target  weight
0    ape   hous       2
1    ape    dog       2
2    ape   bird       2
3    dog   hous       1
4    dog   hors       1
5   bird   hous       1
6   bird   fist       1
7    ape   hors       1
8    ape   fist       1

你可以先排序按行apply ,然后添加參數namereset_index

df_count = df.apply(sorted, axis=1) \
             .groupby(['source', 'target']) \
             .size() \
             .reset_index(name='weight') \
             .sort_values('weight', ascending=False)
print (df_count)
  source target  weight
0    ape   bird       2
1    ape    dog       2
4    ape   hous       2
2    ape   fist       1
3    ape   hors       1
5   bird   fist       1
6   bird   hous       1
7    dog   hors       1
8    dog   hous       1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM