teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

コードを見やすく変更しました

2020/02/20 21:46

投稿

pythoner123
pythoner123

スコア18

title CHANGED
@@ -1,1 +1,1 @@
1
- pythonでcsvファイルを読み込み、リストを扱って計算を行いたい
1
+ pythonで計算を行いたい
body CHANGED
@@ -1,52 +1,16 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
 
4
- pythonで以下のcsvファイルを読み込み、リストを扱って計算を行いたいです。
4
+ pythonで計算を行いたいです。
5
5
 
6
- 以下のcsvの説明です。
7
- IDは0から99まで存在し各ID毎にData列にあるリスト内の数字が次の行のリスト内に含まれている確率を計算しリストに代入したいです。
8
6
 
9
- ### 発生している問題・エラーメッセージ
10
7
 
11
- ```
12
- p[j].append(np.mean([d in df.loc[k+1, 'Data'] for d in df.loc[k, 'Data']]))
13
- IndexError: list index out of range
14
- ```
15
8
 
16
9
  ### 該当のソースコード
17
10
 
18
11
  ```python
19
- R,G,ID,Data
20
- 1,0,0,"[1, 9, 10, 90]"
21
- 1,0,1,"[0, 2, 11, 91]"
22
- 1,0,2,"[1, 3, 12, 92]"
12
+ print((sum(p[j]))/len(p[j]))
23
- 1,0,3,"[2, 4, 13, 93]"
24
- 、、、
25
- 2,0,0,"[3, 9, 10, 91]"
26
- 2,0,1,"[0, 2, 11, 91]"
27
- 2,0,2,"[1, 3, 12, 92]"
28
- 2,0,3,"[2, 4, 13, 93]"
29
- 、、、
30
-
31
13
  ```
32
-
33
- ### 該当のソースコード
34
-
35
- ```python
36
- import pandas as pd
37
- import json
38
- import io
39
- import numpy as np
40
- p=[]
41
- for i in range(1,11):
42
- with open('d'+str(i)+'.csv') as da:#10個のファイルを扱う
43
- df = pd.read_csv(da)
44
- for j in range(0,100):#各IDそれぞれについて計算したい
45
- df2 = df[(df["Agent_ID"]==j)]
46
- for k in range(len(df2)):
47
- p[j].append(np.mean([d in df.loc[k+1, 'Data'] for d in df.loc[k, 'Data']]))
48
- print((sum(p[j]))/sum(p[j]))
49
- ```
50
14
  ### 懸念点
51
15
  初心者であるため、リストのエラーよりも大きな問題があるとおもわれるので
52
16
  ご指摘のほどよろしくお願いいたします。