質問編集履歴
2
集計したいことを追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
### 実現したいこと
|
2
|
-
- 以下の左図のように、グループに属する人物のリストがあります。
|
2
|
+
- 以下の左図のように、グループ(group)に属する人物(person)のリストがあります。
|
3
|
-
-
|
3
|
+
- 各グループ内の人物が重複する人数をカウントし、右図のようにまとめたいと思っています。
|
4
|
+
- AとBは「2」がどちらにも含まれているので、重複している人物が1人 → freq = 1
|
5
|
+
- AとDは「2」「3」がどちらにも含まれているので、重複している人物が2人 → freq = 2
|
4
6
|
- グループは約3,000、人物はのべ5万人あるデータを処理します。
|
5
7
|

|
6
8
|
|
7
9
|
### 試してみたこと
|
8
10
|
- グループの組み合わせを作成。
|
9
|
-
- 組み合わせを参照しながら、重複を数える方法がないかと悩んでします。
|
11
|
+
- グループの組み合わせを参照しながら、該当するグループの重複を数える方法がないかと悩んでします。
|
10
|
-
|
11
12
|
|
12
13
|
```python
|
13
14
|
import pandas as pd
|
1
試したことを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,6 +4,29 @@
|
|
4
4
|
- グループは約3,000、人物はのべ5万人あるデータを処理します。
|
5
5
|

|
6
6
|
|
7
|
+
### 試してみたこと
|
8
|
+
- グループの組み合わせを作成。
|
7
|
-
|
9
|
+
- 組み合わせを参照しながら、重複を数える方法がないかと悩んでします。
|
10
|
+
|
11
|
+
|
12
|
+
```python
|
13
|
+
import pandas as pd
|
14
|
+
import itertools
|
15
|
+
|
16
|
+
data = pd.read_table("C:/Users/lisaco/data_0131.txt", encoding="utf-8")
|
17
|
+
dt = data[['group', 'person']]
|
18
|
+
|
19
|
+
u = dt['group'].unique()
|
20
|
+
comb = itertools.combinations(u,2)
|
21
|
+
|
22
|
+
name = ["group1", "group2"]
|
23
|
+
dtx = pd.DataFrame(comb, columns=name)
|
24
|
+
|
25
|
+
~~def func(x):
|
26
|
+
df.groupby('comb')['b'].agg(lambda x: list(x)):~~
|
27
|
+
|
28
|
+
~~df['freq'] = df.apply(func, axis=1)~~
|
29
|
+
```
|
30
|
+
|
8
31
|
よろしくお願いします。
|
9
32
|
|