次の問題を解決しようとしています。私はグループのすべてのシーケンスを抽出し、それらをカウントする必要がデータフレームから親ノードと後続ノードを抽出する方法
df =
ID GROUP_1 GROUP_2 GROUP_3 GROUP_4
1 AAA AAA BBB CCC
2 CCC AAA CCC BBB
3 DDD CCC BBB CCC
4 ...
:データフレームdf
があります。出力は、この1(二乗括弧で私は与えられた親ノードのすべての可能な、後続のノードを持つようにしたい)する必要があります:
result =
AAA, 3, [AAA,BBB,CCC]
BBB, 2, [CCC]
CCC, 3, [AAA,BBB]
DDD, 1, [CCC]
私は次のようにグループのユニークoccurancesの数をカウントする方法を知っている:
df.filter(regex="^GROUP").stack().reset_index(level=1, drop=True).reset_index().drop_duplicates()[0].value_counts()
それはこの1つのように出力できます。しかし、私は重複せずにすべての可能な、後続のノードを抽出し、これらのペアのすべての回出てくるカウントする方法がわからない
AAA 2
BBB 3
CCC 3
DDD 1
を(重複を含む)。
DDD、1、[CCC] '行はどのようにして取得できましたか?または 'CCC、3、[AAA、BBB]'行? –
@RomanPekar: 'df'で見ることができるように、' DDD'という値は 'CCC'という1つの可能な次の列の値しか持たず、' 'という行が1つしかありません。'CCC'についても同じです:この値は' AAA'と 'BBB'である次の列の2つの可能な一意の値を持つことができ、' '(行2)、' ' (行2)、「」(行3)。今はっきりしていますか?ありがとう。 –
Dinosaurius