質問編集履歴

5

CSVデータ部分の表記修正

2019/09/01 02:15

投稿

qsuke
qsuke

スコア11

test CHANGED
File without changes
test CHANGED
@@ -12,15 +12,15 @@
12
12
 
13
13
  # 2つのCSVデータ中身(例)
14
14
 
15
- 日時 株価 始値 高値 安値 出来高 時価総額(百万円)
15
+ 日時,株価,始値,高値,安値,出来高,時価総額(百万円)
16
16
 
17
- 2019/8/29 15:00 1383 1320 1399 1317 411900 22274
17
+ 2019/8/29 15:00,1383,1320,1399,1317,411900,22274
18
18
 
19
19
 
20
20
 
21
- 日時 株価 始値 高値 安値 出来高 時価総額(百万円)
21
+ 日時,株価,始値,高値,安値,出来高,時価総額(百万円)
22
22
 
23
- 2019/8/30 15:00 1361 1353 1368 1337 269100 21919
23
+ 2019/8/30 15:00,1361,1353,1368,1337,269100,21919
24
24
 
25
25
 
26
26
 

4

要望の追加

2019/09/01 02:15

投稿

qsuke
qsuke

スコア11

test CHANGED
File without changes
test CHANGED
@@ -102,7 +102,7 @@
102
102
 
103
103
 
104
104
 
105
- したがって、**CSVを結合したことによって型が変わってしまったと考えられる**のですが、このようなケースで、'date'の型を上記のように求める型に戻す、もしくは求める型のまま結合するにはどのようにしたらいいでしょうか。
105
+ したがって、**CSVを結合したことによって型が変わってしまったと考えられる**のですが、このようなケースで、'date'の型を上記のように求める型に戻す、もしくは求める型のまま結合するにはどのようにしたらいいでしょうか。また、さらに、最終形態としては「2019/8/30 15:00」ではなく「2019/8/30」と時間を削除した形で表示できるようにしたいです。
106
106
 
107
107
 
108
108
 

3

不要部分の削除

2019/09/01 02:08

投稿

qsuke
qsuke

スコア11

test CHANGED
File without changes
test CHANGED
@@ -33,8 +33,6 @@
33
33
  import numpy as np
34
34
 
35
35
  import glob
36
-
37
- import sqlite3
38
36
 
39
37
 
40
38
 

2

CSVを読み込んだ処理(CSVの結合含む)を記載するあたって、内容の追加・変更

2019/09/01 02:04

投稿

qsuke
qsuke

スコア11

test CHANGED
File without changes
test CHANGED
@@ -8,45 +8,69 @@
8
8
 
9
9
  ### 困っていること、及び該当のソースコード
10
10
 
11
+ ```Python
12
+
13
+ # 2つのCSVデータ中身(例)
14
+
15
+ 日時 株価 始値 高値 安値 出来高 時価総額(百万円)
16
+
17
+ 2019/8/29 15:00 1383 1320 1399 1317 411900 22274
11
18
 
12
19
 
13
- ```Python
14
20
 
15
- df
21
+ 日時 株価 始値 高値 安値 出来高 時価総額(百万円)
16
22
 
17
- # date
23
+ 2019/8/30 15:00 1361 1353 1368 1337 269100 21919
18
24
 
19
- # 0 2019/08/26 15:00
20
25
 
21
- # 1 2019/08/27 15:00
22
26
 
23
- # 2 2019/08/28 15:00
27
+ # 必要なライブラリをimport
24
28
 
25
- # 3 2019/08/29 15:00
29
+ import json,csv
26
30
 
27
- # 4 2019/08/30 15:00
31
+ import pandas as pd
28
32
 
33
+ import numpy as np
34
+
35
+ import glob
36
+
37
+ import sqlite3
38
+
39
+
40
+
41
+ # 2つのCSVを結合
42
+
29
- # 5 2019/08/31 15:00
43
+ csv_files = glob.glob('*.csv')
44
+
45
+ list = []
46
+
47
+
48
+
49
+ for f in csv_files:
50
+
51
+ list.append(pd.read_csv(f, encoding='cp932'))
52
+
53
+ df = pd.concat(list)
54
+
55
+
56
+
57
+ dfs = df.rename(columns={'日時': 'date', '株価': 'close', '始値': 'open', '高値': 'high', '安値': 'low', '出来高': 'volume', '時価総額(百万円)': 'Market-cap'})
30
58
 
31
59
  ```
32
60
 
33
61
 
34
62
 
35
- たとえばこのようなデータがあったとします。
36
-
37
- 手元のデータの型を見ると、以下のように表示されました。object型ではあるものの、要素は文字列str型ではない、とのこと。
63
+ ような形で作ったデータの型を見ると、以下のように表示されました。object型ではあるものの、要素は文字列str型ではない、とのこと。
38
-
39
-
40
64
 
41
65
  ```Python
42
66
 
43
- print(df['date'].dtypes)
67
+ print(dfs['date'].dtypes)
44
68
 
45
69
  # object
46
70
 
47
71
 
48
72
 
49
- print(type(df['date'][0]))
73
+ print(type(dfs['date'][0]))
50
74
 
51
75
  # <class 'pandas.core.series.Series'>
52
76
 
@@ -54,9 +78,7 @@
54
78
 
55
79
 
56
80
 
57
- なので、以下のようにすると、当然ではありますが、以下のようなエラーメッセージが出てしまい、変換できませんでした。
81
+ なので、以下のようにすると、以下のようなエラーメッセージが出てしまい、変換できませんでした。
58
-
59
-
60
82
 
61
83
  ```Python
62
84
 
@@ -70,7 +92,7 @@
70
92
 
71
93
 
72
94
 
73
- object型ではあるものの、要素は文字列strではないものを、最終的には以下のような型として日付データに変換するには、どようにしたらでしょうか。
95
+ ただし、確認したところ、1つCSVデータ単体'date'の型を見ると、以下のように変換する必要、求める型存在ていることが分りました
74
96
 
75
97
  ```Python
76
98
 
@@ -82,6 +104,8 @@
82
104
 
83
105
 
84
106
 
107
+ したがって、**CSVを結合したことによって型が変わってしまったと考えられる**のですが、このようなケースで、'date'の型を上記のように求める型に戻す、もしくは求める型のまま結合するにはどのようにしたらいいでしょうか。
108
+
85
109
 
86
110
 
87
111
  以上、解決方法など、アドバイスいただけると助かります。よろしくお願いします。

1

2019/09/01 01:59

投稿

qsuke
qsuke

スコア11

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- ### 困っていること、及び該当のソースコード
9
+ ### 困っていること、及び該当のソースコード
10
10
 
11
11
 
12
12
 
@@ -34,9 +34,7 @@
34
34
 
35
35
  たとえばこのようなデータがあったとします。
36
36
 
37
- 手元のデータの型を見ると、以下のように表示されました。
38
-
39
- object型ではあるものの、要素は文字列str型ではない、とのこと。
37
+ 手元のデータの型を見ると、以下のように表示されました。object型ではあるものの、要素は文字列str型ではない、とのこと。
40
38
 
41
39
 
42
40
 
@@ -56,9 +54,7 @@
56
54
 
57
55
 
58
56
 
59
- なので、以下のようにすると、当然ではありますが、
60
-
61
- 以下のようなエラーメッセージが出てしまい、変換できませんでした。
57
+ なので、以下のようにすると、当然ではありますが、以下のようなエラーメッセージが出てしまい、変換できませんでした。
62
58
 
63
59
 
64
60
 
@@ -74,9 +70,7 @@
74
70
 
75
71
 
76
72
 
77
- object型ではあるものの、要素は文字列str型ではないものを、
78
-
79
- 最終的には以下のような型として日付データに変換するには、どのようにしたらいいでしょうか。
73
+ object型ではあるものの、要素は文字列str型ではないものを、最終的には以下のような型として日付データに変換するには、どのようにしたらいいでしょうか。
80
74
 
81
75
  ```Python
82
76