質問編集履歴
1
質問内容の抜けの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,12 +1,20 @@
|
|
1
|
+
pythonでのpandasを用いたデータ処理において詰まっておりますので、ぜひ助けていただけると幸いです。
|
2
|
+
|
3
|
+
なにとぞよろしくお願いします。
|
4
|
+
|
5
|
+
|
6
|
+
|
1
7
|
###前提・実現したいこと
|
2
8
|
|
3
|
-
|
9
|
+
ある時間にid=0がどこにあるか(Area)を分類・収集するプログラムが、start endの形式でデータを出力するので、データ処理の行いやすい時系列のデータに変換したい。
|
4
10
|
|
11
|
+
|
12
|
+
|
5
|
-
|
13
|
+
元となるStart End形式のデータ(raw_data)を
|
6
14
|
|
7
15
|
```
|
8
16
|
|
9
|
-
id | start_time | end_time |
|
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
|
-
|
25
|
+
時系列に変換したい(02秒でダブりあり)
|
18
26
|
|
19
27
|
```
|
20
28
|
|
21
|
-
time | id |
|
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[['
|
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['
|
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(
|
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
|