質問編集履歴

2

集計したいことを追記

2023/02/09 14:53

投稿

退会済みユーザー
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
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-02-09/066beb34-c9e6-4c25-a0ec-46a0043f090f.png)
6
8
 
7
9
  ### 試してみたこと
8
10
  - グループの組み合わせを作成。
9
- - 組み合わせを参照しながら、重複を数える方法がないかと悩んでします。
11
+ - グループの組み合わせを参照しながら、該当するグループの重複を数える方法がないかと悩んでします。
10
-
11
12
 
12
13
  ```python
13
14
  import pandas as pd

1

試したことを追加

2023/02/09 14:42

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -4,6 +4,29 @@
4
4
  - グループは約3,000、人物はのべ5万人あるデータを処理します。
5
5
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-02-09/066beb34-c9e6-4c25-a0ec-46a0043f090f.png)
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