質問編集履歴

1

質問内容の抜けの修正

2017/10/16 11:58

投稿

hamar1
hamar1

スコア26

test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,20 @@
1
+ pythonでのpandasを用いたデータ処理において詰まっておりますので、ぜひ助けていただけると幸いです。
2
+
3
+ なにとぞよろしくお願いします。
4
+
5
+
6
+
1
7
  ###前提・実現したいこと
2
8
 
3
- Python3
9
+ ある時間にid=0がどこにあるか(Area)を分類・収集するプログラムが、start endの形式データを出力するので、データ処理の行いやすい時系列のデータに変換したい。
4
10
 
11
+
12
+
5
- 下記のようなStart End形式のデータ(raw_data)を
13
+ 元とStart End形式のデータ(raw_data)を
6
14
 
7
15
  ```
8
16
 
9
- id | start_time | end_time | type
17
+ id | start_time | end_time | Area
10
18
 
11
19
  0 | 2017-09-29 00:00:00 | 2017-09-29 00:00:02 | A
12
20
 
@@ -14,11 +22,11 @@
14
22
 
15
23
  ```
16
24
 
17
- 離散型に変換したい(02秒でダブりあり)
25
+ 時系列に変換したい(02秒でダブりあり)
18
26
 
19
27
  ```
20
28
 
21
- time | id | type.A | type.B
29
+ time | id | Area.A | Area.B
22
30
 
23
31
  2017-09-29 00:00:00 | 0 | 1 | 0
24
32
 
@@ -36,7 +44,7 @@
36
44
 
37
45
  ###発生している問題・エラーメッセージ
38
46
 
39
-
47
+ 下記メッセージが出て、処理が終了せず。
40
48
 
41
49
  ```
42
50
 
@@ -54,21 +62,47 @@
54
62
 
55
63
  ```ここに言語を入力
56
64
 
65
+ # --- 入力データの編集 ------
66
+
67
+ raw_data = pd.csv_read("必要なデータ.csv")
68
+
69
+ # ダミー変数作成
70
+
57
- raw_dummy = pd.get_dummies(copy_raw_data[['type']])
71
+ raw_dummy = pd.get_dummies(copy_raw_data[['Area']])
72
+
73
+ # 結合
74
+
75
+ con_data = pd.concat([copy_raw_data,raw_dummy],axis=1)
76
+
77
+ con_data.reset_index(inplace=True) # increment変数のため
58
78
 
59
79
 
80
+
81
+ # --- DatetimeIndexを用意して、新しいDataFrameを作成
60
82
 
61
83
  dti = pd.date_range(start=min(raw_data['start_time']), end=max(raw_data['end_time']), freq='S')
62
84
 
63
85
  df_freq = DataFrame(index=dti, columns=raw_dummy.columns)
64
86
 
65
- df_freq['ユーザー名'] = NA
87
+ df_freq['id'] = NA
66
-
67
- # df_freq.reset_index(inplace=True)
68
88
 
69
89
  df_freq.rename(columns={'index': 'time'}, inplace=True)
70
90
 
91
+
92
+
93
+ # --- 以下、問題を抱えている部分-------
94
+
95
+ for i in con_data['index']:
96
+
97
+ t_range = pd.date_range(start=con_data['start_time'][i], end=con_data['end_time'][i],freq='S')
98
+
99
+ for t in t_range:
100
+
101
+ for c in raw_dummy.columns:
102
+
103
+ df_freq[c][t] += con_data[c][i]
104
+
71
- df_freq.head(1)
105
+ df_freq.head()
72
106
 
73
107
  ```
74
108
 
@@ -76,10 +110,10 @@
76
110
 
77
111
  ###試したこと
78
112
 
79
- 課題に対てアプローチしたことを記載してださ
113
+ DataFrameのapplyを使う、for文を成型するなどしたが、うまくいっていません。
80
114
 
81
115
 
82
116
 
83
117
  ###補足情報(言語/FW/ツール等のバージョンなど)
84
118
 
85
- より詳細な情報
119
+ python3