我想解決以下問題。有一個數據幀df
:如何從數據框中提取父節點和後續節點
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 ...
我需要提取組的所有序列和計數。輸出應該是一個(在方括號我想爲給定的父節點的所有可能的後續節點):
result =
AAA, 3, [AAA,BBB,CCC]
BBB, 2, [CCC]
CCC, 3, [AAA,BBB]
DDD, 1, [CCC]
我知道如何計算組的唯一出現的次數如下:
df.filter(regex="^GROUP").stack().reset_index(level=1, drop=True).reset_index().drop_duplicates()[0].value_counts()
它給像這樣的輸出:
AAA 2
BBB 3
CCC 3
DDD 1
不過,我不知道如何提取所有可能的後續節點沒有重複和計數這些對所有出現(包括重複)。
我不明白,你是怎麼得到'DDD,1,[CCC]'line?或者'CCC,3,[AAA,BBB]'線? –
@RomanPekar:正如你在'df'中看到的那樣,'DDD'的值只有一個可能的後續列值'CCC',並且這樣的序列''只有一個出現(它出現在第3行) 。對於'CCC'也是一樣的:這個值可以有後續列的兩個可能的唯一值,它們是'AAA'和'BBB',總共有3個這樣的對:''(第2行),'' (第2行),''(第3行)。現在更清楚了嗎?謝謝。 –
Dinosaurius