kharuka2016のブログ

日々の出来事を書き留めておくブログ

今週の割安株投資パフォーマンス(2017/8/19)

今週は日経平均株価下げに下げましたね。東証2部銘柄中心のポートフォリオを組んでいるとは言え、なかなかの痛手です。

このまま日経平均株価1万9000円を下回っていくのでしょうか?9月の中間決算発表前だけに、いつ・どこまでキャッシュポジションを増やすか悩みどころですね。

最近の一番の注目材料は、やはりウォンテッドリー(3991)のIPOですね。

株を買うなら最低限知っておきたい ファンダメンタル投資の教科書

株を買うなら最低限知っておきたい ファンダメンタル投資の教科書

保有銘柄】

・国内株式

証券コード 銘柄
2903 シノブフーズ
4987 寺岡製作所
5955 ヤマシナ
5956 トーソー
5973 トーアミ
6357 三精テクノロジーズ
8905 イオンモール
9468 カドカワ
9986 蔵王産業

投資信託

証券コード 銘柄
79312021 三井住友・日本債券インデックス・ファンド

【パフォーマンス】

+245,728円

株式投資を始める方はこちらも合わせてご覧ください。

kharuka2016.hatenablog.com

pandas-indexの階層構造-

入門 Python 3

入門 Python 3

目次

前提条件

OS:Windows 10 64-bit, version 1607

Anaconda 4.4.0(Python 3.6 version 64-bit)インストール

NumPyのインストール

手順概要

1.コマンドプロンプトでIPython Notebookを起動します。

2.データの並び替えと順番

手順

1.コマンドプロンプトでIPython Notebookを起動します。

ipython notebook

2.データの並び替えと順番

2.1.numpy、panadasとpandasからSeriesとDataFrameをインポートします。

import numpy as np
from numpy.random import randn
import pandas as pd
from pandas import Series,DataFrame

2.2.Seriesを作成します。

ser=Series(randn(6),index=[[1,1,1,2,2,2],['a','b','c','a','b','c']])
ser

Out:

1  a   -1.345709
   b   -1.219113
   c    0.739873
2  a   -1.211379
   b    1.146896
   c    0.525995
dtype: float64

2.3.indexを表示します。

ser.index

Out:

MultiIndex(levels=[[1, 2], ['a', 'b', 'c']],
           labels=[[0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2]])

f:id:kharuka2016:20170817155845p:plain

2.4.indexを指定してSeriesを表示します。

ser[1]

Out:

a   -1.345709
b   -1.219113
c    0.739873
dtype: float64

f:id:kharuka2016:20170817155851p:plain

2.5.2階層目のindexを指定してSriesを表示します。

ser[:,'a']

Out:

1   -1.345709
2   -1.211379
dtype: float64

2.6.unstackを用いてSeriesからDataFrameに変換します。

dframe=ser.unstack()
dframe

Out:

   a   b   c
1  -1.345709  -1.219113  0.739873
2  -1.211379  1.146896   0.525995

2.7.DataFrameからSeriesに変換します。

dframe.unstack()

Out:

a  1   -1.345709
   2   -1.211379
b  1   -1.219113
   2    1.146896
c  1    0.739873
   2    0.525995
dtype: float64

f:id:kharuka2016:20170817155856p:plain

2.8.転置してからDataFrameをSeriesに変換します。

dframe.T.unstack()

Out:

1  a   -1.345709
   b   -1.219113
   c    0.739873
2  a   -1.211379
   b    1.146896
   c    0.525995
dtype: float64

2.9.DataFrameを作成します。

dframe2=DataFrame(np.arange(16).reshape((4,4)),
index=[['a','a','b','b'],[1,2,1,2]],
columns=[['NY','NY','LA','SF'],['cold','hot','hot','cold']])
dframe2

Out:

       NY      LA  SF
        cold    hot hot cold
a   1  0  1  2  3
    2  4  5  6  7
b   1  8  9  10 11
    2  12 13 14 15

f:id:kharuka2016:20170817155901p:plain

2.10.indexに名前を付けます。

dframe2.index.names=['INDEX_1','INDEX_2']
dframe2

Out:

       NY      LA  SF
        cold    hot hot cold
INDEX_1 INDEX_2             
a   1  0  1  2  3
    2  4  5  6  7
b   1  8  9  10 11
    2  12 13 14 15

2.11.列に名前を付けます。

dframe2.columns.names=['Cities','Temp']
dframe2

Out:

Cities NY      LA  SF  
    Temp    cold    hot hot cold
INDEX_1 INDEX_2             
a   1  0  1  2  3
    2  4  5  6  7
b   1  8  9  10 11
    2  12 13 14 15

f:id:kharuka2016:20170817155907p:plain

2.12.列の階層を入れ替えます。

dframe2.swaplevel('Cities','Temp',axis=1)

Out:

   Temp    cold    hot     cold
    Cities  NY  NY  LA  SF
INDEX_1 INDEX_2             
a   1  0  1  2  3
    2  4  5  6  7
b   1  8  9  10 11
    2  12 13 14 15

f:id:kharuka2016:20170817155913p:plain

2.13.sortlevel(X)は非推奨のようです。sort_index(level=X)を使いましょう。

dframe2.sortlevel(1)

f:id:kharuka2016:20170817155832p:plain

2.14.2階層目でsortします。

dframe2.sort_index(level=1)

Out:

   Cities  NY      LA  SF
    Temp    cold    hot hot cold
INDEX_1 INDEX_2             
a   1  0  1  2  3
b   1  8  9  10 11
a   2  4  5  6  7
b   2  12 13 14 15

2.15.2階層目でsortし、1階層目でsortします。元のDataFrameに戻ったことが確認できましたでしょうか?

dframe2.sort_index(level=1).sort_index(level=0)

Out:

   Cities  NY      LA  SF
    Temp    cold    hot hot cold
INDEX_1 INDEX_2             
a   1  0  1  2  3
    2  4  5  6  7
b   1  8  9  10 11
    2  12 13 14 15

f:id:kharuka2016:20170817155836p:plain

2.16.列の名前と列(縦軸)を指定して和を求めます。

dframe2.sum(level='Temp',axis=1)

Out:

   Temp    cold    hot
INDEX_1 INDEX_2     
a   1  3  3
    2  11 11
b   1  19 19
    2  27 27

f:id:kharuka2016:20170817155841p:plain

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

参考:

udemy 実践Pythonデータサイエンス

www.udemy.com

Pythonスタートブック

Pythonスタートブック

仕事文の書き方-仕事文とは何か-(2017/818更新)

仕事文の書き方 (岩波新書)

仕事文の書き方 (岩波新書)

古典にみる文章のルール

土佐日記からの引用

  • 松の色は青く、磯の色は雪のごとくに

  • 海は荒るれども、心はすこしなぎぬ

現代語訳

  • 松の色は青く、磯の波は雪のように白い

  • 海は荒れているが、心はすこし穏やかになった

土佐日記からの引用文はとても良い文である。現代人が書く文はあいまいな文が多い。

古典(土佐日記 現代人が書く文
一文が短い(主語と述部で構成された最小単位を文という) 一文が長い
一文に1つの情報だけを盛り込んでいる 一文に複数の情報を詰め込んでいる
対比の文で書かれている 対比の文で書かれていない
やさしい言葉を使っている むずかしい言葉、わからない言葉を乱用している

では実際に現代人が書くあいまいな仕事文の例を見てみましょう。

  1. A社のように、B社は過剰生産していない

  2. ワープロのように、パソコンの操作はかんたんではない

  3. 彼のように、私には積極性がない

例の1.の文を解釈してみましょう。

  • A社もB社も、ともに過剰生産していない

  • A社は過剰生産しているが、B社はしていない

読み手の判断によって、異なる2つの意味に解釈されてしまう。

一文内に「過剰生産に関するA社の現状」と「過剰生産に関するB社の現状」という2つの情報が混在しているため、あいまいさが生じている。あいまいさの原因が分かれば、文を改善することが出来る。

例の1.の文に土佐日記のノウハウを活用してみましょう。

  • 一文に1つの情報だけを盛り込んでいる

  • 対比の文で書かれている

例の1.の文を改善した文

  • A社は過剰生産をしているが、B社はしていない

  • A社は過剰生産をしておらず、B社もしていない

これで明確な文章になったのではないでしょうか?自戒の念も込めて、普段何気なく書いている文を見直しましょう。

説得の文章とは?

夏目漱石の名作「草枕」の一節

智(ち)に働けば角かどが立つ。情に棹(さお)させば流される。意地を通せば窮屈(きゅうくつ)だ。兎角(とかく)に人の世は住みにくい。

情報提示の順序も大切

<作成中>

やさしい文章を書く

<作成中>

わかればいいのか?

<作成中>

仕事文の範囲

<作成中>

新・あのヒット商品のナマ企画書が見たい!

新・あのヒット商品のナマ企画書が見たい!

参考:

roudokus.com

roudokus.com

今日の相場の格言

株で勝つ!  相場格言400 (日経ビジネス人文庫)

株で勝つ! 相場格言400 (日経ビジネス人文庫)

不況の時こそ、その業界代表株を買え

業界トップの銘柄であれば、不況時でも倒産のリスクが低く、景気が回復した時は人気を集めやすく株価上昇が期待できる。買いたい株が値下がりするのも時間の問題ですかね。オリンピックまで今の日経平均株価が果たして持つのか。

関連記事:

kharuka2016.hatenablog.com

株を買うなら最低限知っておきたい ファンダメンタル投資の教科書

株を買うなら最低限知っておきたい ファンダメンタル投資の教科書

【LINE】花火

 

 

条件

  • iOS版LINEバージョンが最新の「7.9.0」以上である。
  • それでも「花火」が打ち上がらない場合は、ログイン後画面右下「三点リーダー」、右上「設定」をタップして、再びトーク画面で「花火」と送信。

 

iPhoneユーザーの方は友達に「花火」と送って見てください。きっと友達に手当たり次第、「花火」って送りたくなりますよ。

 

 

超めちゃ徳セット No20000

超めちゃ徳セット No20000

 

 

参考:

http://www.huffingtonpost.jp/2017/08/15/line-fireworks_n_17762524.html

https://www.buzzfeed.com/jp/harunayamazaki/line-hanabi

 

 

 

pandas-欠損値の扱い-

入門 Python 3

入門 Python 3

目次

前提条件

OS:Windows 10 64-bit, version 1607

Anaconda 4.4.0(Python 3.6 version 64-bit)インストール

NumPyのインストール

手順概要

1.コマンドプロンプトでIPython Notebookを起動します。

2.欠損値の扱い

手順

1.コマンドプロンプトでIPython Notebookを起動します。

ipython notebook

2.欠損値の扱い

2.1.numpy、panadasとpandasからSeriesとDataFrameをインポートします。

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

2.2.今回はnanをよく使うので、numpyからnanをインポートします。Seriesを作成します。

from numpy import nan
data=Series(['one','two',nan,'four'])
data

Out:

0     one
1     two
2     NaN
3    four
dtype: object

2.3.値がnull(nan)かどうか調べます。

data.isnull()

Out:

0    False
1    False
2     True
3    False
dtype: bool

f:id:kharuka2016:20170815144258p:plain

2.4.null値を削除します。

data.dropna()

Out:

0     one
1     two
3    four
dtype: object

2.5.DataFrameを作成します。

dframe=DataFrame([[1,2,3],[nan,5,6],[7,nan,9],[nan,nan,nan]])
dframe

Out:

   0  1  2
0  1  2  3
1  NaN 5  6
2  7  NaN 9
3  NaN NaN NaN

2.6.null値がある行を削除します。

dframe.dropna()

Out:

   0  1  2
0  1  2  3

f:id:kharuka2016:20170815144304p:plain

2.7.列の値がすべてnullの行の場合、行を削除するように指定できます。

dframe.dropna(how='all')

Out:

   0  1  2
0  1  2  3
1  NaN 5  6
2  7  NaN 9

2.8.null値がある列を削除するように指定できます。defaultではaxis=0となっており行を指定しています。

dframe.dropna(axis=1)

Out:

0
1
2
3

2.9.新たにDataFrameを作成します。

dframe2=DataFrame([[1,2,3,nan],[2,nan,5,6],[nan,7,nan,9],[1,nan,nan,nan]])
dframe2

Out:

0 1  2  3  
0  1  2  3  NaN
1  2  NaN 5  6
2  NaN 7  NaN 9
3  1  NaN NaN NaN

f:id:kharuka2016:20170815144309p:plain

2.10.列の値が2つ以上ない行がある場合、行を削除します。

dframe2.dropna(thresh=2)

Out:

   0  1  2  3
0  1  2  3  NaN
1  2  NaN 5  6
2  NaN 7  NaN 9

2.11.列の値が3つ以上ない行がある場合、行を削除します。

dframe2.dropna(thresh=3)

Out:

   0  1  2  3
0  1  2  3  NaN
1  2  NaN 5  6

f:id:kharuka2016:20170815144314p:plain

2.12.nanを1に置き換えます。

dframe2.fillna(1)

Out:

   0  1  2  3
0  1  2  3  1
1  2  1  5  6
2  1  7  1  9
3  1  1  1  1

f:id:kharuka2016:20170815144320p:plain

2.13.列ごとにnanを置き換える値を指定できます。

dframe2.fillna({0:0,1:1,2:2,3:3})

Out:

0 1  2  3  
0  1  2  3  3
1  2  1  5  6
2  0  7  2  9
3  1  1  2  3

f:id:kharuka2016:20170815144324p:plain

2.14.inplace=Trueを指定することで参照ではなく、参照元を置換します。

dframe2.fillna(0, inplace=True)
dframe2

Out:

   0  1  2  3
0  1  2  3  0
1  2  0  5  6
2  0  7  0  9
3  1  0  0  0

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

参考:

udemy 実践Pythonデータサイエンス

www.udemy.com

Pythonスタートブック

Pythonスタートブック

今日の相場の格言

株で勝つ!  相場格言400 (日経ビジネス人文庫)

株で勝つ! 相場格言400 (日経ビジネス人文庫)

ひとつのカゴにすべての卵を盛るな

~Don’t put all your eggs in one basket.~

時間・銘柄共に分散投資をしておけばリスクを下げられるという格言。しかし、闇雲に分散すれば良いわけではなく選択と集中は必要である。そこが個別銘柄選択の難しいところでも有り、醍醐味でもあります。

関連記事:

kharuka2016.hatenablog.com

株を買うなら最低限知っておきたい ファンダメンタル投資の教科書

株を買うなら最低限知っておきたい ファンダメンタル投資の教科書