import csv divi={} price=[] with open('divi.csv',newline='') as csvfile: reader = csv.reader(csvfile) rui=0 for row1 in reader: break for row1 in reader: b=row1[1] rui=rui+int(b) divi[row1[0]]=rui date=row1[1] with open('price.csv',newline='') as csvfile: reader = csv.reader(csvfile) for row in reader: break for row in reader: date=row[0] if date in divi: print(date,row[1],(divi[date])) elif date not in divi: print(date,int(row[1])+rui) ここに言語を入力 ```ある投資信託データ10年分が入ったcsvファイルで練習しています。 divi.csvには半期毎の分配金額、price.csvにはdailyの基準価格、が入力されています。 divi.csvファイル 日付,分配金 20100627,1500 20101227,500 20110627,200 20111227,0 price.csvファイル 日付,基準価格 20100601,10000 20100602,10100 20100603,10150 • • • 20100626,10500 20100627,9000 (ここで配当落ちしてる) 20100628,9100 • • • 20101226,12000 20101227,11500 (ここで配当落ちしてる) [目的] price.csvファイルの基準価格にそれまでの累積分配金も足したい。 自分で書いたスクリプトを実行すると、分配金日当日の基準価格にだけ累積配当金が加算されてしまいます。 (そして、分配金日当日は加算前と加算後で同じ日付のデータが二行表示されます) 二人で練習していて一人がpandasで、私は使わないでとしているので、pandsを使わないで描きたいです。 いろいろ調べたんですが、初心者すぎて、もう何を調べれば良いのかわからなくなっています。 全部教えてください、というつもりはなく、何かヒントもらえるとありがたいです。 [これを書けるといいのかな?という想像] divi.csvファイルに足りない日付を足して、直前の累積分配金を入れる。 price.csvファイルを、日付をkeyにして結合(足し算?)。
質問が書いてありませんね
pandasを使いたくない理由は何ですか?
※pandasなら実装可能ですか?
現在できているソースを提示いただけませんか?
それが出てこないなら作業依頼になるので、そういうところに依頼してください。
皆さますみませんでした。ソース追記しました。次回から気をつけます
ソース追加ありがとうございます。
pythonはインデントが正しく無いと動作しないのはご存じのことと思います。
正しくMarkdownでマークしていただかないとスペースが消えてしまうので、修正いただけませんか?
ありがとうございます。治しました(^^;;
修正ありがとうございます。
> pandsを使わないで行いたいのは、二人で練習していて一人がpandasを使ってやる、私は使わないでやる、という事になっているからです。
追加された文章のようですが、そういうことならご自身で解決しないと意味がないのでは?
ソース中に`divi.csv`、`price.csv`という記述がありますが、質問文では`ファイル1`、`ファイル2`です。
どちらがどれにあたりますか?(考えればわかりますが)
また、[やりたい事]と[したい事]という記述がありますが、なにか意味に違いがあるのでしょうか?
[したい事]の方が長いように見えますが、「このスクリプトを~」からあとは、ソースの説明と背景の説明のように見えます。
最後に、「配当も含めて株価推移を見たい」の意味がわかりません。
株価はprice.csvあたりに入っているデータではないのですか?
それを見れば推移では?
divi.csvの配当列を足したのが「株価推移」ですか?
株価ということは単元株の価格と思いますが、配当金も単元単位なのですか?
配当を株価に足したら株価推移ではない気がするのですが、どういった定義なのでしょうか?
現在までの利益的なものが表示したいのかなとも思いましたが、株価+配当で利益ではないし、よくわかりません。(xxxで買って、yyyで売ったら、xxx-yyyが利益ですよね???)
pandasを使って、一緒に作成の練習をしている方と暗黙の仕様を持っていたりしませんか?
ご親切にありがとうございます。分かりやすいかなと思い、株価としましたが、修正の通り投資信託データです。逆に分かりづらくしていた様ですみません。
アドバイスを受けて整理してみました。
また、
>最後に、「配当も含めて株価推移を見たい」の意味がわかりません。
株価はprice.csvあたりに入っているデータではないのですか?
それを見れば推移では?
divi.csvの配当列を足したのが「株価推移」ですか?
株価ということは単元株の価格と思いますが、配当金も単元単位なのですか?
配当を株価に足したら株価推移ではない気がするのですが、どういった定義なのでしょうか?
こちらに関してですが、利益を外に分配しなかったとして基準価格の推移を見たいです。
ですので、全ての基準価格に都度、その時の累積分配金を足しこんでいきたいです。
回答1件
あなたの回答
tips
プレビュー