質問編集履歴
1
質問内容の抜けの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,14 +1,18 @@
|
|
1
|
+
pythonでのpandasを用いたデータ処理において詰まっておりますので、ぜひ助けていただけると幸いです。
|
2
|
+
なにとぞよろしくお願いします。
|
3
|
+
|
1
4
|
###前提・実現したいこと
|
2
|
-
|
5
|
+
ある時間にid=0がどこにあるか(Area)を分類・収集するプログラムが、start endの形式でデータを出力するので、データ処理の行いやすい時系列のデータに変換したい。
|
6
|
+
|
3
|
-
|
7
|
+
元となるStart End形式のデータ(raw_data)を
|
4
8
|
```
|
5
|
-
id | start_time | end_time |
|
9
|
+
id | start_time | end_time | Area
|
6
10
|
0 | 2017-09-29 00:00:00 | 2017-09-29 00:00:02 | A
|
7
11
|
0 | 2017-09-29 00:00:02 | 2017-09-29 00:00:04 | B
|
8
12
|
```
|
9
|
-
|
13
|
+
時系列に変換したい(02秒でダブりあり)
|
10
14
|
```
|
11
|
-
time | id |
|
15
|
+
time | id | Area.A | Area.B
|
12
16
|
2017-09-29 00:00:00 | 0 | 1 | 0
|
13
17
|
2017-09-29 00:00:01 | 0 | 1 | 0
|
14
18
|
2017-09-29 00:00:02 | 0 | 1 | 1
|
@@ -17,7 +21,7 @@
|
|
17
21
|
```
|
18
22
|
|
19
23
|
###発生している問題・エラーメッセージ
|
20
|
-
|
24
|
+
下記メッセージが出て、処理が終了せず。
|
21
25
|
```
|
22
26
|
A value is trying to be set on a copy of a slice from a DataFrame
|
23
27
|
|
@@ -26,18 +30,31 @@
|
|
26
30
|
|
27
31
|
###該当のソースコード
|
28
32
|
```ここに言語を入力
|
33
|
+
# --- 入力データの編集 ------
|
34
|
+
raw_data = pd.csv_read("必要なデータ.csv")
|
35
|
+
# ダミー変数作成
|
29
|
-
raw_dummy = pd.get_dummies(copy_raw_data[['
|
36
|
+
raw_dummy = pd.get_dummies(copy_raw_data[['Area']])
|
37
|
+
# 結合
|
38
|
+
con_data = pd.concat([copy_raw_data,raw_dummy],axis=1)
|
39
|
+
con_data.reset_index(inplace=True) # increment変数のため
|
30
40
|
|
41
|
+
# --- DatetimeIndexを用意して、新しいDataFrameを作成
|
31
42
|
dti = pd.date_range(start=min(raw_data['start_time']), end=max(raw_data['end_time']), freq='S')
|
32
43
|
df_freq = DataFrame(index=dti, columns=raw_dummy.columns)
|
33
|
-
df_freq['
|
44
|
+
df_freq['id'] = NA
|
34
|
-
# df_freq.reset_index(inplace=True)
|
35
45
|
df_freq.rename(columns={'index': 'time'}, inplace=True)
|
46
|
+
|
47
|
+
# --- 以下、問題を抱えている部分-------
|
48
|
+
for i in con_data['index']:
|
49
|
+
t_range = pd.date_range(start=con_data['start_time'][i], end=con_data['end_time'][i],freq='S')
|
50
|
+
for t in t_range:
|
51
|
+
for c in raw_dummy.columns:
|
52
|
+
df_freq[c][t] += con_data[c][i]
|
36
|
-
df_freq.head(
|
53
|
+
df_freq.head()
|
37
54
|
```
|
38
55
|
|
39
56
|
###試したこと
|
40
|
-
|
57
|
+
DataFrameのapplyを使う、for文を成型するなどしましたが、うまくいっていません。
|
41
58
|
|
42
59
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
43
|
-
|
60
|
+
python3
|