replace と正規表現

replace と正規表現

import investpy

economic_data = investpy.news.economic_calendar(time_zone=None, time_filter='time_only', countries=['japan', 'united states'],importances=None,categories=None,from_date='01/01/2021', to_date='11/06/2021')

ISM =economic_data[economic_data['event'].str.contains('ISM Non-Manufacturing PMI')]
ISM

とすると
ISM Non-Manufacturing PMI (Dec)

というように結果に
(月)
という表示が入ってしまう

これを削除するには
replace の正規表現を使う

DataFrameで部分一致で文字列を置換

にあるように

replace で第3引数で
regex=True
を指定することで正規表現で replace が可能になる

正規表現については
分かりやすいpythonの正規表現の例

を参考に

今回は任意の英数字なので
[a-zA-Z0-9_]

そして1回以上の繰り返しなので
+
をつかう

replace で ( を置き換え対象にするには
\(
というようにしないとダメ

ISM['event'] = ISM['event'].replace("\([a-zA-Z0-9_]+\)","",regex=True)
ISM

とすれば
(Dec)
の部分が削除される

+を指定すれば繰り返しの指定ができるので

PHS =economic_data[economic_data['event'].str.contains('Pending Home Sales')]
PHS

の結果で
Pending Home Sales (MoM) (Dec)
となっていても

PHS['event']=PHS['event'].replace("\([a-zA-Z0-9_]+\)+","",regex=True)
PHS

とすることで
Pending Home Sales
と変換することができる

geogebra-classic インストール

関数とは入力に対して1つの出力があるということ

yはxの関数である
を表記すると
y=f(x)

英語で書くと
y equals function of x

例としてタクシーの料金

走行距離 => 料金

というもの

次は一次関数と二次関数

一次関数の例

チーズが1gあたり5円
箱代100円

これを y と x の関係にして数式で表現

チーズが x
金額が y
とする

y = 5 * x +100
= 5x +100
となる

この式により
100個売ると
5x + 100
の式から
600円
となる

これをグラフにすると
x=0だと y = 100
になり
xが増えた文だけ直線になっていく

この傾きは
xが1増えるとき
直線がいくつ増えるか
というのを勾配
という

ニューラルネットでいう勾配降下法
gradient descent
というので使う

x=0のときのyの値
これを切片という

今回の式を一般化すると
y = ax + b
となる

a が傾き
b を切片

ax の部分を項
という

項は1つずつの塊
つまり式の+とかで区切るときの塊をいう

このxの数が次数という

今回はxが1つだけなので
一次
となる

これが
y=ax2 + bx + c
なら
項が3つ
xが2つなので二次
となる

一番多い次数を数えて
一次、二次といっている
今回なら
二次関数で
二次の多項式
となっている

これらのグラフを描画するにあたり
GeoGebra を使うと便利

インストールできない場合
ブラウザ版もある

Reference:GeoGebra Installation

によれば
Ad Linux: the .deb and .rpm installers will automatically add the official GeoGebra repository to the package management system on the workstation. This will enable automatic update of GeoGebra every time a new version is released. If you want to include GeoGebra in your custom Linux distribution with GeoGebra included, the best way is to add the official GeoGebra repository (http://www.geogebra.net/linux/) to your package management system. The GPG key of the repository is at https://static.geogebra.org/linux/office@geogebra.org.gpg.key – the name of the package is geogebra-classic.
Installing GeoGebra directly from the command line: for Ubuntu, these two commands eliminate the need for downloading .deb files:
とあり
リポジトリを登録することで簡単インストールが可能

とあったが
リポジトリ登録のため

sudo apt-add-repository -u 'deb http://www.geogebra.net/linux/ stable main' 

を実行したら

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 520, in update
    pulse_interval)
SystemError: W:ターゲット Packages (contrib/binary-amd64/Packages) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:ターゲット Packages (contrib/binary-all/Packages) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:ターゲット Translations (contrib/i18n/Translation-ja_JP) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:ターゲット Translations (contrib/i18n/Translation-ja) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:ターゲット Translations (contrib/i18n/Translation-en) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:ターゲット DEP-11 (contrib/dep11/Components-amd64.yml) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:ターゲット DEP-11-icons (contrib/dep11/icons-64x64.tar) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:http://download.ebz.epson.net/dsc/op/stable/debian/dists/lsb3.2/Release.gpg: 鍵 E5220FB7014D0FBDA50DFC2BE5E86C008AA65D56 による署名は弱い digest アルゴリズム (SHA1) を使用しています, W:署名照合中にエラーが発生しました。リポジトリは更新されず、過去のインデックスファイルが使われます。GPG エラー: https://dl.winehq.org/wine-builds/ubuntu xenial InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 76F1A20FF987672F, W:GPG エラー: http://www.geogebra.net/linux stable InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY C072A32983A736CF, W:リポジトリ http://www.geogebra.net/linux stable InRelease は署名されていません。, W:このようなリポジトリから取得したデータは認証できないので、データの使用は潜在的に危険です。, W:リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。, E:/var/lib/apt/lists/partial/download.virtualbox.org_virtualbox_debian_dists_xenial_InRelease の状態を取得するのに失敗しました - pkgAcqTransactionItem::TransactionState-stat (2: そのようなファイルやディレクトリはありません), E:/var/lib/apt/lists/partial/download.virtualbox.org_virtualbox_debian_dists_xenial_contrib_binary-amd64_Packages の状態を取得するのに失敗しました - pkgAcqTransactionItem::TransactionState-stat (2: そのようなファイルやディレクトリはありません)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/apt-add-repository", line 173, in <module>
    if not sp.add_source_from_shortcut(shortcut, options.enable_source):
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 782, in add_source_from_shortcut
    cache.update(sources_list=new_debsrc_entry.file)
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 522, in update
    raise FetchFailedException(e)
apt.cache.FetchFailedException: W:ターゲット Packages (contrib/binary-amd64/Packages) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:ターゲット Packages (contrib/binary-all/Packages) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:ターゲット Translations (contrib/i18n/Translation-ja_JP) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:ターゲット Translations (contrib/i18n/Translation-ja) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:ターゲット Translations (contrib/i18n/Translation-en) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:ターゲット DEP-11 (contrib/dep11/Components-amd64.yml) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:ターゲット DEP-11-icons (contrib/dep11/icons-64x64.tar) は /etc/apt/sources.list:60 と /etc/apt/sources.list:62 で複数回設定されています, W:http://download.ebz.epson.net/dsc/op/stable/debian/dists/lsb3.2/Release.gpg: 鍵 E5220FB7014D0FBDA50DFC2BE5E86C008AA65D56 による署名は弱い digest アルゴリズム (SHA1) を使用しています, W:署名照合中にエラーが発生しました。リポジトリは更新されず、過去のインデックスファイルが使われます。GPG エラー: https://dl.winehq.org/wine-builds/ubuntu xenial InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 76F1A20FF987672F, W:GPG エラー: http://www.geogebra.net/linux stable InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY C072A32983A736CF, W:リポジトリ http://www.geogebra.net/linux stable InRelease は署名されていません。, W:このようなリポジトリから取得したデータは認証できないので、データの使用は潜在的に危険です。, W:リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。, E:/var/lib/apt/lists/partial/download.virtualbox.org_virtualbox_debian_dists_xenial_InRelease の状態を取得するのに失敗しました - pkgAcqTransactionItem::TransactionState-stat (2: そのようなファイルやディレクトリはありません), E:/var/lib/apt/lists/partial/download.virtualbox.org_virtualbox_debian_dists_xenial_contrib_binary-amd64_Packages の状態を取得するのに失敗しました - pkgAcqTransactionItem::TransactionState-stat (2: そのようなファイルやディレクトリはありません)

となるため
Ubuntu Desktop 20.04にGeoGebraをインストールする

を参考にインストール

sudo apt-get -y install  libcanberra-gtk-module libgconf-2-4 gconf-service gconf2-common libcanberra-gtk0 gconf-service-backend

で必要なライブラリをインストール

今回は ubuntu 16.04 へインストールするので
Linux (deb): 64 bit installers for .deb based systems (Mint ≥ 18, Debian ≥ 8, Ubuntu ≥ 14.10)
をダウンロード

sudo dpkg -i geogebra-classic_6.0.666.0-202109211234_amd64.deb 

でインストール

geogebra を起動し
数式を入力

今回は
y = 5x + 100

として横の○アイコンをクリックすると
グラフの表示ON・OFFができる

VS Code で python のパスを追記

VS Code で python のパスを追記

vscode で自動補完されないため
最新版に更新したら
python そのものを読み込んでいない状態に
VSCodeでPython自作モジュールimport時のエラー(Unable to import )が消えない場合の対処方法
を参考に

python.autoComplete.extraPaths
を設定することにした

パスに関しては
VScodeの自動整形や自動補完の設定(Python)

を参考に

pip show tensorflow

の結果

Name: tensorflow
Version: 2.8.0
Summary: TensorFlow is an open source machine learning framework for everyone.
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: packages@tensorflow.org
License: Apache 2.0
Location: /home/snowpool/anaconda3/lib/python3.8/site-packages
Requires: absl-py, astunparse, flatbuffers, gast, google-pasta, grpcio, h5py, keras, keras-preprocessing, libclang, numpy, opt-einsum, protobuf, setuptools, six, tensorboard, tensorflow-io-gcs-filesystem, termcolor, tf-estimator-nightly, typing-extensions, wrapt
Required-by: 

から
/home/snowpool/anaconda3/lib/python3.8/site-packages
がパスであることを確認

VS Codeのsettings.jsonの開き方

を参考に

ctrl + ,
で設定画面を開き
右上のアイコンから

Open Setting (JSON)アイコンをクリック

settings.json
の
{
    "workbench.editorAssociations": {
        "*.ipynb": "jupyter-notebook"
    },
    "notebook.cellToolbarLocation": {
        "default": "right",
        "jupyter-notebook": "left"
    }
}

{
    "workbench.editorAssociations": {
        "*.ipynb": "jupyter-notebook"
    },
    "notebook.cellToolbarLocation": {
        "default": "right",
        "jupyter-notebook": "left"
    },
    "python.autoComplete.extraPaths": [
        "/home/snowpool/anaconda3/lib/python3.8/site-packages"
    ],
    "python.analysis.extraPaths": [
        "/home/snowpool/anaconda3/lib/python3.8/site-packages"
    ]
}

として保存

これで再度 vscode を立ち上げると
コード補完がされるようになる

ubuntu に opencv tensorflow2 のインストール

ubuntu に opencv tensorflow2 のインストール

Ubuntu に python の opencv をインストール

を参考に

python -m pip install --upgrade pip
pip install opencv-python
pip install opencv-contrib-python

でインストール

次に
TensorFlow 2 をインストールする

を参考に

pip install --upgrade pip
pip install tensorflow

でインストール

pip show tensorflow

でバージョンを確認したら

Name: tensorflow
Version: 2.8.0
Summary: TensorFlow is an open source machine learning framework for everyone.
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: packages@tensorflow.org
License: Apache 2.0
Location: /home/snowpool/anaconda3/lib/python3.8/site-packages
Requires: absl-py, astunparse, flatbuffers, gast, google-pasta, grpcio, h5py, keras, keras-preprocessing, libclang, numpy, opt-einsum, protobuf, setuptools, six, tensorboard, tensorflow-io-gcs-filesystem, termcolor, tf-estimator-nightly, typing-extensions, wrapt
Required-by: 

となった
UbuntuにTensorFlowをインストールする【機械学習システム公開のため】

によれば
avx 対応しているCPUでないとダメらしい

sudo lshw -class processor


CPUの確認ができるらしい

私の環境だと

  *-cpu                   
       詳細: CPU
       製品: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
       ベンダー: Intel Corp.
       物理ID: 3
       バス情報: cpu@0
       バージョン: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
       シリアル: To Be Filled By O.E.M.
       スロット: CPU 1
       サイズ: 1966MHz
       容量: 3800MHz
       幅: 64 bits
       クロック: 100MHz
       性能: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb ssbd ibrs ibpb stibp kaiser tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d cpufreq
       設定: cores=4 enabledcores=4 threads=8

となり
一応は問題なし
10年前くらいに購入したマシンだったけど
なんとか動くようだ

Vscode プラグイン

Vscode プラグイン

https://yurupro.cloud/767/
を参考に
Python 開発関連を入れる

プラグインの入れ方は
https://blog-and-destroy.com/21376
を参考に

indent-rainbow
でインデントの色分け

ZenKaku
で全角を色でわかるようにする

Python Indent
でpython の自動インデント

TabNine
で予測変換

Python Docstring Generator

関数やクラス用のコメントのフォーマットを自動作成

Pylance

設定で、python.analysis.typeCheckingModeをbasicまたはstrictに設定すると型チェックを利用できる

Auto Rename Tag

開始タグと終了タグの修正が連動するようになる

Highlight Matching Tag

開始と終了タグにアンダーラインが引かれる

M1 Mac 開発環境作成

M1 Mac 開発環境作成

Viscose インストール

Python 開発環境

Jupiter notebook

Git
を入れる

Udemy などを参考に入れていく

まず home-brew が必要
https://www.teamxeppet.com/macbook-m1-homebrew-install/
を参考にインストール

Command + スペース

Spotlight検索を開いて
ターミナルと入力し

ターミナルを開き

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

でインストール

インストール後にパスを通す必要があるので

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/snowpool/.zprofile
brew -v

でバージョンを確認

Homebrew 3.3.12

M1 Mac環境にPython3をインストールする方法

を参考に

pyenv

Python3 をインストール

brew install pyenv
pyenv -v

でバージョンが出ればok

次に使用しているシェルを確認

env | grep SHELL

を実行し

SHELL=/bin/zsh

となったら

~/.zshrc を編集することになる

シェルの違いについては
MacにPythonをインストールする3つの方法!それぞれの利点と手順を紹介

を参考に

最新版のVimをインストールする方法【Mac】
を参考に

brew install vim


Vim をインストール

次に pyenv のパスを設定

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc
pyenv install 3.8.12


Python3.8.12 をインストール

pyenv global 3.8.12 

で使用するpython のバージョンを指定

次に
Python – Jupyter NotebookをMac M1 搭載機にインストールする
を参考に

Pip3 で Jupiter notebook をインストールする

pip3 install --upgrade pip

で最初に pip をアップデートして最新にしておく

sudo -H pip3 install jupyter

でインストールしたけど

WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

と最後にエラーが出た

pip3 install jupyter

を実行したら特にエラーは出なかった

とりあえずインストールはできたので

jupyter notebook

で起動

これで動作確認できたので
次に git のインストール

MacにGitをインストールする

を参考に
Git で画像を扱えるように

brew install git
brew install git-lfs

を実行する

次に google chrome
これは
普通に検索してダウンロードするだけでok

ラズパイ4のセットアップ

ラズパイ4のセットアップ

半導体不足のためほぼ手に入らない状態だったので
KSY でラズパイ4の教材セットのものを購入

すでにOSの書き込みはされているので
ディスプレイとキーボード、マウスなどを用意すれば
すぐに起動できる

今回は
bluetooth キーボードを使用したが
初期設定はマウスだけでもできる

パスワード入力などではキーボードが必要になる

今回は
Anker の bluetooth キーボードを使用したが
ペアリングや日本語入力で手間取った

ペアリングは
Fn + z キーの長押しで行い

日本語変換と英語の切り替えは
スペース + Control で行う

とりあえずインストールができたら端末を起動し

sudo raspi-config

を実行

Interfacing Options を Select

I2 SSH
をクリックし

はい
をクリック

これでSSHが有効になるので

ここから後は ubuntu から操作できる

なお

Warning: Permanently added '192.168.1.48' (ECDSA) to the list of known hosts.
Received disconnect from 192.168.1.48 port 22:2: Too many authentication failures
packet_write_wait: Connection to 192.168.1.48 port 22: Broken pipe

となったときには

 ssh -o IdentitiesOnly=yes pi@192.168.1.48

とすることで
接続できる

今回はUSBカメラを使用する

ロジクールLogicool C270n

次に公開鍵認証にするので
Ubuntu で ssh-keygenコマンドで作成

-t で暗号形式を rsa
-b で4096ビットに指定
なおデフォルトでは2048ビット

cd .ssh
ssh-keygen -t rsa -b 4096

で作成

Enter file in which to save the key (/home/snowpool/.ssh/id_rsa): 

となったらファイル名を入力

今回は raspi4
としておく

パスフレーズは省略するので

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 


Enter にすればパスフレーズなしとなる

次に公開鍵の登録

これは
ssh-copy-id コマンドを使う

なお接続するラズパイ4のIPは
Android ならFing で調べることが可能

 scp -o IdentitiesOnly=yes .ssh/raspi4.pub pi@192.168.1.48:/home/pi/

で作成したファイルをコピー

次に
ラズパイにログイン

cat raspi4.pub >> .ssh/authorized_keys
chmod 700 .ssh/
chmod 600 .ssh/authorized_keys 
sudo apt install vim


vim をインストール

sudo vim /etc/ssh/sshd_config

で設定ファイルを開き

パスワード認証を禁止

PermitEmptyPasswords no
PasswordAuthentication no

AuthorizedKeyFile .ssh/authorized_keys

を設定

sudo /usr/sbin/sshd -t

で設定の確認

sudo /etc/init.d/ssh restart


ssh の再起動

これで

ssh pi@192.168.1.48

でログインが可能になる

次に opencv のインストール

sudo apt update -y
sudo apt upgrade -y
sudo apt autoremove -y

でリポジトリ更新とアップデート
そして不要なパッケージの削除

次に opencv に必要なライブラリをインストール

sudo apt install -y libhdf5-103
sudo apt install -y libatlas-base-dev
sudo apt install -y libjasper-dev

しかし

sudo apt install -y libqt4-test

を実行したところ

E: パッケージ libqt4-test が見つかりません

となる

python : pip install OpenCVでRaspbianでこのエラーが発生するのはなぜですか?2021-12-27 06:48

によれば
Qt4はもうパッケージ化されていない
とのこと

このため
Linuxでdebパッケージをインストールする方法

を見ながら

wget http://ftp.de.debian.org/debian/pool/main/q/qt4-x11/libqt4-test_4.8.7+dfsg-18+deb10u1_arm64.deb
sudo dpkg -i libqt4-test_4.8.7+dfsg-18+deb10u1_arm64.deb

としたが

パッケージアーキテクチャ (arm64) がシステム (armhf) と一致しません
処理中にエラーが発生しました:

となるため

wget http://ftp.us.debian.org/debian/pool/main/q/qt4-x11/libqt4-test_4.8.7+dfsg-18+deb10u1_armhf.deb
sudo dpkg -i libqt4-test_4.8.7+dfsg-18+deb10u1_armhf.deb

としたが

dpkg: 依存関係の問題により libqt4-test:armhf の設定ができません:
 libqt4-test:armhf は以下に依存 (depends) します: libqtcore4 (= 4:4.8.7+dfsg-18+deb10u1) ...しかし:
  パッケージ libqtcore4 はまだインストールされていません。

dpkg: パッケージ libqt4-test:armhf の処理中にエラーが発生しました (--install):
 依存関係の問題 - 設定を見送ります
libc-bin (2.31-13+rpt2+rpi1+deb11u2) のトリガを処理しています ...
処理中にエラーが発生しました:
 libqt4-test:armhf

となってしまう

きにせずそのまま

sudo pip install opencv-python

としたら
インストールできた

sudo python3 -m pip install pip --upgrade


pip もアップデートしておく

次に仮想環境を構築するツール
virtualenv

virtualenvwrapper
をインストール

sudo pip3 install virtualenv

を実行すると
インストールは成功するが

WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

となる

意味は

警告:「root」ユーザーとしてpipを実行すると、権限が破損し、システムパッケージマネージャーとの動作が競合する可能性があります。代わりに仮想環境を使用することをお勧めします
とのこと

pip install virtualenvwrapper

でインストールすると

  WARNING: The script virtualenv-clone is installed in '/home/pi/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

とでてくる

これは
.bashrc へ設定追加が必要

virtualenvとvirtualenvwrapperを使う

を参考に

whichコマンドを使って、virtualenvwrapper.shの場所を探す

which virtualenvwrapper.sh

結果は

/home/pi/.local/bin/virtualenvwrapper.sh

だったので

vim .bashrc 

でファイルを開き
最終行に

if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
    export WORKON_HOME=$HOME/.virtualenvs
    source /home/pi/.local/bin/virtualenvwrapper.sh #ここはwhichコマンドの結果に変えてください。
fi

を追記

source .bashrc

で有効化

しかし
mkvirtualenv コマンドが見つからないので
再度設定を変更

Raspberry Pi で virtualenv のインストール

を参考に

追記部分の

if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
    export WORKON_HOME=$HOME/.virtualenvs
    source /home/pi/.local/bin/virtualenvwrapper.sh #ここはwhichコマンドの結果に変えてください。
fi

を削除し

代わりに

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /home/pi/.local/bin/virtualenvwrapper.sh

を追記

source のパスは

which virtualenvwrapper.sh

のものを使用

これで

source .bashrc 

を実行すると
mkvirtualenv コマンドが使えるようになる

このコマンドの詳細については
コマンドリファレンス

を参考に

WordPress 2 段階認証プラグイン Two-Factor

WordPress 2 段階認証プラグイン Two-Factor

新規プラグインで
Two Factor
で検索

インストール後に有効化

ユーザ > あなたのプロフィール

Time Based One-Time Password (TOTP)
をクリック

QRコードを
Android アプリの
Google認証システムで読み取り
認証コードを入力する

注意点としては
スペースをいれること

これでプロフィールを更新すると
次回からログインのときに2段階認証が有効化され
ログインID、パスワードのあとに
認証アプリで表示された6つの値を入力しないとログインできないようになる

Pandas の文字列型の数値を数値型に変換

Pandas の文字列型の数値を数値型に変換

import pandas as pd
import investpy
import altair as alt
import datetime

economic_data2 = investpy.economic_calendar(time_zone=None, time_filter='time_only', countries=['japan', 'united states'], from_date='01/01/2021', to_date='31/01/2021')


ISM =economic_data[economic_data['event'].str.contains('ISM Non-Manufacturing PMI')]

date2 =[]
for i in ISM['date']:
    new_date = datetime.datetime.strptime(i,"%d/%m/%Y").strftime("%Y-%m-%d")
    date2.append(new_date)

ISM['date']=ISM['date'].str.replace('/','-')
ISM['date'] = date2
ISM.fillna(0)

これで取得した経済指標のデータを計算できるように数値変換する

previous_score = ISM['actual'].tail(1)
previous_score

でみると

2598    64.0
Name: actual, dtype: object

となるが数値ではなくオブジェクトになっている

Pandasで欠損のある列の文字列型の数値を数値型に変換する
を参考に数値に変換する

文字列を数値にするには
padas.to_numeric() を使う

errors には
raise がデフォルトで例外が発生
ignore は例外を抑えるが何も変換せずにそのままのオブジェクトを返す
coerce は数値変換できるものだけ変換しあとはNaN にする

これを利用して

previous_score2 =pd.to_numeric(ISM['actual'],errors="coerce")
previous_score2.tail(1)

とすれば

2598    64.0
Name: actual, dtype: float64

となる

これで数値化できたので
計算もできるようになる

print(previous_score2.tail(1) -1)
print( 62 - previous_score2.tail(1))

とすると結果は

2598    63.0
Name: actual, dtype: float64
2598   -2.0
Name: actual, dtype: float64

となった

これで経済指標の結果と前回の予測値との差分を計算して表示できる

ubuntu で Chrome がフリーズする対処

ubuntu で Chrome がフリーズする対処

Ubuntu 19.10 でChromeがフリーズする場合の回避策

を参考に

google-chrome-stable --disable-gpu

で起動

[設定] > [詳細設定] > [システム] > [ハードウェアアクセラレーションが使用可能な場合は使用する] をオフ

次にタブを開いて

chrome://flags
へアクセス

[GPU rasterization]

[Disabled]にしてブラウザを再起動