質問編集履歴

3

再度整理しました。。

2020/03/26 11:45

投稿

mn.py
mn.py

スコア41

test CHANGED
File without changes
test CHANGED
@@ -52,29 +52,35 @@
52
52
 
53
53
  ここに言語を入力
54
54
 
55
- ```ある会社の株価データ10年分入ったcsvファイルで練習しています。
55
+ ```ある投資信託データ10年分入ったcsvファイルで練習しています。
56
56
 
57
- ファイル1には半期毎の配金額、ファイル2にはdailyの価、が入力されています。
57
+ divi.csvには半期毎の配金額、price.csvにはdailyの基準、が入力されています。
58
58
 
59
59
 
60
60
 
61
- ファイル1
61
+ divi.csvファイル
62
62
 
63
- 日付,配
63
+ 日付,
64
64
 
65
65
  20100627,1500
66
66
 
67
67
  20101227,500
68
68
 
69
- ファイル2
69
+ 20110627,200
70
70
 
71
+ 20111227,0
72
+
73
+
74
+
75
+ price.csvファイル
76
+
71
- 日付,
77
+ 日付,基準
72
78
 
73
79
  20100601,10000
74
80
 
75
81
  20100602,10100
76
82
 
77
-
83
+ 20100603,10150
78
84
 
79
85
 
80
86
 
@@ -94,32 +100,30 @@
94
100
 
95
101
 
96
102
 
97
-
98
-
99
103
  20101226,12000
100
104
 
101
105
  20101227,11500 (ここで配当落ちしてる)
102
106
 
103
107
 
104
108
 
109
+ [目的]
110
+
111
+ price.csvファイルの基準価格にそれまでの累積分配金も足したい。
112
+
113
+ 自分で書いたスクリプトを実行すると、分配金日当日の基準価格にだけ累積配当金が加算されてしまいます。
114
+
115
+ (そして、分配金日当日は加算前と加算後で同じ日付のデータが二行表示されます)
116
+
117
+ 二人で練習していて一人がpandasで、私は使わないでとしているので、pandsを使わないで描きたいです。
118
+
119
+ いろいろ調べたんですが、初心者すぎて、もう何を調べれば良いのかわからなくなっています。
120
+
121
+ 全部教えてください、というつもりはなく、何かヒントもらえるとありがたいです。
105
122
 
106
123
 
107
124
 
125
+ [これを書けるといいのかな?という想像]
108
126
 
109
- という感じの2つのデータで、株価データファイルはdaily配当データは配当日の配しかっていません
127
+ divi.csvファイルに足りない日付を足して直前累積分配金れる
110
128
 
111
- [やりたい事]
112
-
113
- 配当も含めて株価推移を見たい(累積を足していきたい)
114
-
115
-
116
-
117
- [したい事]
118
-
119
- ファイル2の配当以外の株価も、それまでの累積配当金を足して表示たい
129
+ price.csvファイルを、付をkeyにして結合(足算?)
120
-
121
- このスクリプトを実行すると、配当日だけに累積配当金が加算されます。(そして、配当日は加算前と加算後の二行表示されます)
122
-
123
- pandsを使わないで行いたいのは、二人で練習していて一人がpandasを使ってやる、私は使わないでやる、という事になっているからです。
124
-
125
- 要領得なくてすみません。次からは気をつけますね。

2

修正記載方法修正しました。重ね重ねすみません。ありがとうございました。よろしくお願いいたします!

2020/03/26 11:45

投稿

mn.py
mn.py

スコア41

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,58 @@
1
+ ```
2
+
3
+ import csv
4
+
5
+
6
+
7
+ divi={}
8
+
9
+ price=[]
10
+
11
+ with open('divi.csv',newline='') as csvfile:
12
+
13
+ reader = csv.reader(csvfile)
14
+
15
+ rui=0
16
+
17
+ for row1 in reader:
18
+
19
+ break
20
+
21
+ for row1 in reader:
22
+
23
+ b=row1[1]
24
+
25
+ rui=rui+int(b)
26
+
27
+ divi[row1[0]]=rui
28
+
29
+ date=row1[1]
30
+
31
+
32
+
33
+ with open('price.csv',newline='') as csvfile:
34
+
35
+ reader = csv.reader(csvfile)
36
+
37
+ for row in reader:
38
+
39
+ break
40
+
41
+ for row in reader:
42
+
43
+ date=row[0]
44
+
45
+ if date in divi:
46
+
47
+ print(date,row[1],(divi[date]))
48
+
49
+ elif date not in divi:
50
+
51
+ print(date,int(row[1])+rui)
52
+
53
+ ここに言語を入力
54
+
1
- ある会社の株価データを10年分入ったcsvファイルで練習しています。
55
+ ```ある会社の株価データを10年分入ったcsvファイルで練習しています。
2
56
 
3
57
  ファイル1には半期毎の配当金額、ファイル2にはdailyの株価、が入力されています。
4
58
 
@@ -60,60 +114,6 @@
60
114
 
61
115
 
62
116
 
63
- import csv
64
-
65
-
66
-
67
- divi={}
68
-
69
- price=[]
70
-
71
- with open('divi.csv',newline='') as csvfile:
72
-
73
- reader = csv.reader(csvfile)
74
-
75
- rui=0
76
-
77
- for row1 in reader:
78
-
79
- break
80
-
81
- for row1 in reader:
82
-
83
- b=row1[1]
84
-
85
- rui=rui+int(b)
86
-
87
- divi[row1[0]]=rui
88
-
89
- date=row1[1]
90
-
91
-
92
-
93
- with open('price.csv',newline='') as csvfile:
94
-
95
- reader = csv.reader(csvfile)
96
-
97
- for row in reader:
98
-
99
- break
100
-
101
- for row in reader:
102
-
103
- date=row[0]
104
-
105
- if date in divi:
106
-
107
- print(date,row[1],(divi[date]))
108
-
109
- elif date not in divi:
110
-
111
- print(date,int(row[1])+rui)
112
-
113
-
114
-
115
-
116
-
117
117
  [したい事]
118
118
 
119
119
  ファイル2の配当日以外の株価にも、それまでの累積配当金を足して表示したい。

1

書いたソースの追加

2020/03/26 08:06

投稿

mn.py
mn.py

スコア41

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,18 @@
1
1
  ある会社の株価データを10年分入ったcsvファイルで練習しています。
2
2
 
3
- 1つ目のファイルにはdailyの株価、2つ目のファイルには半期毎の配当金額が入力されています。
3
+ ファイル1には半期毎配当金額、ファイルにはdailyの株価、が入力されています。
4
4
 
5
- 例)
6
5
 
6
+
7
- □一つ目ファイル
7
+ ファイル1
8
+
9
+ 日付,配当
10
+
11
+ 20100627,1500
12
+
13
+ 20101227,500
14
+
15
+ ファイル2
8
16
 
9
17
  日付,株価
10
18
 
@@ -40,13 +48,7 @@
40
48
 
41
49
 
42
50
 
43
- □2つ目ファイル
44
51
 
45
- 日付,配当
46
-
47
- 20100627,1500
48
-
49
- 20101227,500
50
52
 
51
53
 
52
54
 
@@ -58,16 +60,66 @@
58
60
 
59
61
 
60
62
 
61
- [現状]
63
+ import csv
62
-
63
- 1つ目のファイルに、2つ目のファイルの配当の累積データを足しこんだ
64
64
 
65
65
 
66
66
 
67
- [解決したい点]
67
+ divi={}
68
68
 
69
+ price=[]
70
+
71
+ with open('divi.csv',newline='') as csvfile:
72
+
73
+ reader = csv.reader(csvfile)
74
+
75
+ rui=0
76
+
77
+ for row1 in reader:
78
+
79
+ break
80
+
81
+ for row1 in reader:
82
+
83
+ b=row1[1]
84
+
85
+ rui=rui+int(b)
86
+
87
+ divi[row1[0]]=rui
88
+
89
+ date=row1[1]
90
+
91
+
92
+
93
+ with open('price.csv',newline='') as csvfile:
94
+
95
+ reader = csv.reader(csvfile)
96
+
97
+ for row in reader:
98
+
99
+ break
100
+
101
+ for row in reader:
102
+
103
+ date=row[0]
104
+
105
+ if date in divi:
106
+
69
- 一つ目ファイルの配当日以外の株価にも、累積配当金を足して表示したい。
107
+ print(date,row[1],(divi[date]))
108
+
109
+ elif date not in divi:
110
+
111
+ print(date,int(row[1])+rui)
70
112
 
71
113
 
72
114
 
115
+
116
+
117
+ [したい事]
118
+
119
+ ファイル2の配当日以外の株価にも、それまでの累積配当金を足して表示したい。
120
+
121
+ このスクリプトを実行すると、配当日だけに累積配当金が加算されます。(そして、配当日は加算前と加算後の二行表示されます)
122
+
123
+ pandsを使わないで行いたいのは、二人で練習していて一人がpandasを使ってやる、私は使わないでやる、という事になっているからです。
124
+
73
- できれば、pandsを使わいで行いたいです。
125
+ 要領得くてみません次からは気をつけますね。