teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

再度整理しました。。

2020/03/26 11:45

投稿

mn.py
mn.py

スコア41

title CHANGED
File without changes
body CHANGED
@@ -25,39 +25,41 @@
25
25
  elif date not in divi:
26
26
  print(date,int(row[1])+rui)
27
27
  ここに言語を入力
28
- ```ある会社の株価データ10年分入ったcsvファイルで練習しています。
28
+ ```ある投資信託データ10年分入ったcsvファイルで練習しています。
29
- ファイル1には半期毎の配金額、ファイル2にはdailyの価、が入力されています。
29
+ divi.csvには半期毎の配金額、price.csvにはdailyの基準、が入力されています。
30
30
 
31
- ファイル1
31
+ divi.csvファイル
32
- 日付,配
32
+ 日付,
33
33
  20100627,1500
34
34
  20101227,500
35
+ 20110627,200
36
+ 20111227,0
37
+
35
- ファイル2
38
+ price.csvファイル
36
- 日付,
39
+ 日付,基準
37
40
  20100601,10000
38
41
  20100602,10100
42
+ 20100603,10150
39
43
 
40
44
 
41
45
 
42
-
43
46
  20100626,10500
44
47
  20100627,9000 (ここで配当落ちしてる)
45
48
  20100628,9100
46
49
 
47
50
 
48
51
 
49
-
50
52
  20101226,12000
51
53
  20101227,11500 (ここで配当落ちしてる)
52
54
 
55
+ [目的]
56
+ price.csvファイルの基準価格にそれまでの累積分配金も足したい。
57
+ 自分で書いたスクリプトを実行すると、分配金日当日の基準価格にだけ累積配当金が加算されてしまいます。
58
+ (そして、分配金日当日は加算前と加算後で同じ日付のデータが二行表示されます)
59
+ 二人で練習していて一人がpandasで、私は使わないでとしているので、pandsを使わないで描きたいです。
60
+ いろいろ調べたんですが、初心者すぎて、もう何を調べれば良いのかわからなくなっています。
61
+ 全部教えてください、というつもりはなく、何かヒントもらえるとありがたいです。
53
62
 
54
-
55
- という感じの2つのデータで、株価データファイルはdaily、配当データは配当日の配当金しか入っていません。
56
- [やりたい事]
57
- 配当も含めて株価推移見た(累積を足してきた
63
+ [これ書けるといいのかな?とう想像]
58
-
59
- [したい事]
60
- ファイル2の配当日以外の株価それまでの累積配金を足して表示したい
64
+ divi.csvファイルに足りない日付を足して直前の累積配金を入れる
61
- このスクリプトを実行すると、配当日だけに累積配当金が加算されます。(そして、配当日は加算前と加算後の二行表示されます)
62
- pandsを使わないで行いたいのは、二人で練習していて一人がpandasを使ってやる、私は使わないでやる、という事になっているからです。
63
- 要領得なくすみません次からは気をつけますね。
65
+ price.csvファイルを、日付をkeyにし結合(足し算?)

2

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

2020/03/26 11:45

投稿

mn.py
mn.py

スコア41

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,31 @@
1
+ ```
2
+ import csv
3
+
4
+ divi={}
5
+ price=[]
6
+ with open('divi.csv',newline='') as csvfile:
7
+ reader = csv.reader(csvfile)
8
+ rui=0
9
+ for row1 in reader:
10
+ break
11
+ for row1 in reader:
12
+ b=row1[1]
13
+ rui=rui+int(b)
14
+ divi[row1[0]]=rui
15
+ date=row1[1]
16
+
17
+ with open('price.csv',newline='') as csvfile:
18
+ reader = csv.reader(csvfile)
19
+ for row in reader:
20
+ break
21
+ for row in reader:
22
+ date=row[0]
23
+ if date in divi:
24
+ print(date,row[1],(divi[date]))
25
+ elif date not in divi:
26
+ print(date,int(row[1])+rui)
27
+ ここに言語を入力
1
- ある会社の株価データを10年分入ったcsvファイルで練習しています。
28
+ ```ある会社の株価データを10年分入ったcsvファイルで練習しています。
2
29
  ファイル1には半期毎の配当金額、ファイル2にはdailyの株価、が入力されています。
3
30
 
4
31
  ファイル1
@@ -29,33 +56,6 @@
29
56
  [やりたい事]
30
57
  配当も含めて株価推移を見たい(累積を足していきたい)
31
58
 
32
- import csv
33
-
34
- divi={}
35
- price=[]
36
- with open('divi.csv',newline='') as csvfile:
37
- reader = csv.reader(csvfile)
38
- rui=0
39
- for row1 in reader:
40
- break
41
- for row1 in reader:
42
- b=row1[1]
43
- rui=rui+int(b)
44
- divi[row1[0]]=rui
45
- date=row1[1]
46
-
47
- with open('price.csv',newline='') as csvfile:
48
- reader = csv.reader(csvfile)
49
- for row in reader:
50
- break
51
- for row in reader:
52
- date=row[0]
53
- if date in divi:
54
- print(date,row[1],(divi[date]))
55
- elif date not in divi:
56
- print(date,int(row[1])+rui)
57
-
58
-
59
59
  [したい事]
60
60
  ファイル2の配当日以外の株価にも、それまでの累積配当金を足して表示したい。
61
61
  このスクリプトを実行すると、配当日だけに累積配当金が加算されます。(そして、配当日は加算前と加算後の二行表示されます)

1

書いたソースの追加

2020/03/26 08:06

投稿

mn.py
mn.py

スコア41

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,11 @@
1
1
  ある会社の株価データを10年分入ったcsvファイルで練習しています。
2
- 1つ目のファイルにはdaily株価2つ目のファイルには半期毎配当金額が入力されています。
2
+ ファイル1には半期毎配当金額、ファイルにはdaily株価、が入力されています。
3
- 例)
3
+
4
- □一つ目ファイル
4
+ ファイル1
5
+ 日付,配当
6
+ 20100627,1500
7
+ 20101227,500
8
+ ファイル2
5
9
  日付,株価
6
10
  20100601,10000
7
11
  20100602,10100
@@ -19,19 +23,41 @@
19
23
  20101226,12000
20
24
  20101227,11500 (ここで配当落ちしてる)
21
25
 
22
- □2つ目ファイル
23
- 日付,配当
24
- 20100627,1500
25
- 20101227,500
26
26
 
27
+
27
28
  という感じの2つのデータで、株価データファイルはdaily、配当データは配当日の配当金しか入っていません。
28
29
  [やりたい事]
29
30
  配当も含めて株価推移を見たい(累積を足していきたい)
30
31
 
31
- [現状]
32
+ import csv
32
- 1つ目のファイルに、2つ目のファイルの配当の累積データを足しこんだ
33
33
 
34
+ divi={}
34
- [解決したい点]
35
+ price=[]
36
+ with open('divi.csv',newline='') as csvfile:
37
+ reader = csv.reader(csvfile)
38
+ rui=0
39
+ for row1 in reader:
40
+ break
41
+ for row1 in reader:
42
+ b=row1[1]
43
+ rui=rui+int(b)
44
+ divi[row1[0]]=rui
45
+ date=row1[1]
46
+
47
+ with open('price.csv',newline='') as csvfile:
48
+ reader = csv.reader(csvfile)
49
+ for row in reader:
50
+ break
51
+ for row in reader:
52
+ date=row[0]
53
+ if date in divi:
35
- 一つ目ファイルの配当日以外の株価にも、累積配当金を足して表示したい。
54
+ print(date,row[1],(divi[date]))
55
+ elif date not in divi:
56
+ print(date,int(row[1])+rui)
36
57
 
58
+
59
+ [したい事]
60
+ ファイル2の配当日以外の株価にも、それまでの累積配当金を足して表示したい。
61
+ このスクリプトを実行すると、配当日だけに累積配当金が加算されます。(そして、配当日は加算前と加算後の二行表示されます)
62
+ pandsを使わないで行いたいのは、二人で練習していて一人がpandasを使ってやる、私は使わないでやる、という事になっているからです。
37
- できれば、pandsを使わいで行いたいです。
63
+ 要領得くてみません次からは気をつけますね。