回答編集履歴

1

加工前データからの加工方法を追記

2021/09/25 15:22

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -57,3 +57,77 @@
57
57
  2 9020 2021-09-24 06:15:00 7136.0
58
58
 
59
59
  ```
60
+
61
+ 追記
62
+
63
+
64
+
65
+ まず、加工前のデータを以下の形に加工してください。
66
+
67
+ ```python
68
+
69
+ indata = {9983:{'timestamp': [1632464100000], 'open': [77150.0], 'high': [77340.0], 'low': [76530.0], 'close': [77100.0], 'volume': [521000]},
70
+
71
+ 7203:{'timestamp': [1632464101000], 'open': [9985.0], 'high': [10100.0], 'low': [9973.0], 'close': [10100.0], 'volume': [6981600]},
72
+
73
+ 9020:{'timestamp': [1632464100000], 'open': [7158.0], 'high': [7162.0], 'low': [7088.0], 'close': [7136.0], 'volume': [1808400]}}
74
+
75
+ ```
76
+
77
+ そのあと、以下のように加工します。
78
+
79
+ ```python
80
+
81
+ df = pd.DataFrame(indata).T
82
+
83
+ result = pd.DataFrame(df['timestamp'].apply(lambda ts: datetime.utcfromtimestamp(ts[0]//1000)))
84
+
85
+ result['close'] = df['close'].apply(lambda x: x[0])
86
+
87
+ result.index.name = 'code'
88
+
89
+ ```
90
+
91
+ これを実行すると以下のデータフレームになります。
92
+
93
+ ```python
94
+
95
+ >>> print(df)
96
+
97
+ timestamp open high low close volume
98
+
99
+ code
100
+
101
+ 9983 [1632464100000] [77150.0] [77340.0] [76530.0] [77100.0] [521000]
102
+
103
+ 7203 [1632464101000] [9985.0] [10100.0] [9973.0] [10100.0] [6981600]
104
+
105
+ 9020 [1632464100000] [7158.0] [7162.0] [7088.0] [7136.0] [1808400]>>> print(result)
106
+
107
+ timestamp close
108
+
109
+ code
110
+
111
+ 9983 2021-09-24 06:15:00 77100.0
112
+
113
+ 7203 2021-09-24 06:15:01 10100.0
114
+
115
+ 9020 2021-09-24 06:15:00 7136.0
116
+
117
+ ```
118
+
119
+ codeがindexですが、columnにしたいならreset_indexします。
120
+
121
+ ```python
122
+
123
+ >>> print(result.reset_index())
124
+
125
+ code timestamp close
126
+
127
+ 0 9983 2021-09-24 06:15:00 77100.0
128
+
129
+ 1 7203 2021-09-24 06:15:01 10100.0
130
+
131
+ 2 9020 2021-09-24 06:15:00 7136.0
132
+
133
+ ```