Python関連のことを調べてみた2021年01月08日

Python関連のことを調べてみた2021年01月08日

複数ファイルを一括読み込み&縦に結合(DataFrame)

# 0:はじめに
業務のデータ分析をする際に、**複数のファイル**を扱うことはありませんか?

例えば、**1年分のデータ**を**(2019_01.csv,2019_02.csv, .. .. ,2019_12.csv)**と12個のファイルを用意される場合を考えて見てください。

一つずつ読み込み・結合するのは面倒くさいですよね。。

ここで便利なコードを紹介します。
(**今回はカレントディレクトリに複数ファイルがある場合を想定します。**他のディレクトリにある場合は、各々で引数に指定のディレクトリを当てはめて下さい。)

# 1:カレントディレクトリを取得
“`py
import os

#カレントディレクトリ取得
current_dir = os.getcwd()
current_dir

#以下のような形でカレントディレクトリを取得できます
>>> /Users/user_name/Date_science
“`

“`py
#カレントディレクトリ内部のフォルダを取得
os.listdir(current_dir)

#以下のような形でカレントディレクトリ内の全

元記事を表示

政府統計の総合窓口「e-Stat」のAPIを使って市区町村の境界データと目的の統計データをマージする!

# はじめに

みなさま。今、世界で一番熱いWebアプリケーションをご存知でしょうか?

そう。

e-Statです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/a28cbb09-4073-8303-92d3-99fa5dbd4554.png)

政府の統計情報が分野・データ作成組織ごとに取りまとめられており、データの検索も可能。
さらにはグラフ・表など様々な形式で閲覧することのできるポータルサイトです。

APIも用意され、サイトデザインも可愛いくてモダンーな感じに仕上がっていますね。

また、統計データを地図上で可視化する統計GISという機能も用意されているようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/06e65059-89ec-4c41-9f69-b440e7217a71.png)

こちらは国勢調査・人口動態統計・医療施設調査など、特

元記事を表示

VRoidのcluster用VRM出力、結局どうすれば良いの?

現在、VRoid Studioからはcluster対応のVRMを出力する機能が備わっていますが、一方では「clusterは画質が汚い」と言う評価もあるようです。
Macやスマホでもアクセス可能な国産バーチャルSNSですので、なんとか楽な方法で課題を解決したいと思います。

# clusterへの出力は標準で対応している

現行のバージョンのVRoid Studioは標準でclusterへの出力に対応しています。
「撮影・エクスポート」タブのエクスポートから選択します。

厳密には制限はこれだけではありませんが、clusterにアップロードするには以下の制限をクリアする必要があります。
* ポリゴン数: 32000以下
* マテリアル数: 8以下
* ボーン数: 128以下

![スクリーンショット 2021-01-08 7.42.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931697/3c9df104-2f33-14a6-533d-0791aa6ad53b.png)

# 2048pxで出

元記事を表示

【適宜更新(予定)】基本的な可視化手法を整理してみた

* 製造業出身のデータサイエンティストがお送りする記事
* 今回は業務で良く使う可視化手法を整理してみました。
* 適宜更新できるようにしたいと思います。

##はじめに
今回は[Auto MPG](https://archive.ics.uci.edu/ml/datasets/auto+mpg)のデータセットを使用して整理したいと思います。このデータセットは、1970年代後半から1980年台初めの自動車の燃費を現したデータです。

##データの確認
“`php
# 必要なライブラリーのインストール
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
import os

file_path = ‘https://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data’
file_name = os.path.splitex

元記事を表示

階層的クラスタリングを実装してみた

* 製造業出身のデータサイエンティストがお送りする記事
* 今回はクラスタリング手法の中で、K-means法を実装しました。

##はじめに
前回、[K-means法](https://qiita.com/DS27/items/8f6e4162dcfeba8bd97b)を実装しましたが、今回は階層的クラスタリング手法を実装してみました。

##階層的クラスタリングとは
階層的クラスタリングとは、最も似ている組み合わせから順番にまとまり(クラスタ)にしていく方法です。

##階層的クラスタリングの実装
pythonのコードは下記の通りです。

“`php
# 必要なライブラリーのインストール
import numpy as np
import pandas as pd

# 可視化
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
from IPython.display import display
%matplotlib inline
sns.set_style(‘white

元記事を表示

PyPortfolioOpt(投資ポートフォリオ最適化ライブラリ)インストールエラー解消

PythonライブラリのPyPortfolioOpt(投資ポートフォリオ最適化)をインストールエラーを解消したときのメモ。

PyPortfolioOptを使うと、つみたてNISAやiDeCoなどで各資産(国内株式・国内債券・外国株式・外国債券など)への投資割合を、数理最適化を用いて算出できます。

>[PythonでWealthNaviの最適ポートフォリオをやってみた](https://datacoach.me/data/analysis/python-wealthnavi/)

# 環境
– macOS
– Docker
– Anaconda3

# エラーメッセージ
pipでライブラリをインストールしようとしたらエラー。

“`bash
$ pip install PyPorttfolioOpt
“`

エラーメッセージ。

“`
ERROR: Failed building wheel for scs
Running setup.py clean for scs
Failed to build cvxpy ecos scs
ERROR: Could not build w

元記事を表示

文字列の切れ目の一致率の計算【python】

#概要
切れ目の存在する2つの文字列において、切れ目の位置がどの程度一致しているかを計算するプログラムを書きました。
「〇〇で歌ってみた」というジャンルの替え歌において、本来の歌詞の文節の切れ目と替え歌歌詞の単語の切れ目がどの程度一致しているかを調べるために作りました。
#背景
「〇〇で歌ってみた」は特定カテゴリの名詞だけで本来の歌詞の発音を再現するように歌われた替え歌のことです。下図は童謡『ふるさと』の歌詞を駅名に置き換えた「〇〇で歌ってみた」の例です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259353/c9f890e1-b72c-28c2-c9d0-6d5d9059130f.png)
「〇〇で歌ってみた」では替え歌歌詞の単語の切れ目と本来の歌詞の文節の切れ目がどちらかというと一致するように作られる傾向があります。理由は定かではありませんが、一つにはそのほうが歌いやすいからという理由が考えられます。いくつかの替え歌において、どの程度一致しているかを調べたくなったので、2つの文

元記事を表示

音圧レベルFFT (Python)

#はじめに
計測した時間信号が,周波数領域においてどのような特徴(固有振動数・次数音など)を持っているのか?を調べる際に用いられる信号処理手法の1つである**FFT(高速フーリエ変換)**のプログラムコードをここで共有させていただきます.

#前置き
・基本概念は,他の方が解説して頂いたので省きます.
・これが初めての投稿となるので,温かい目で見守っていただけるとありがたいです.
・PyCharm 2020.3.2 (Community Edition)

#目的
今まで拝見した記事の中では,横軸を周波数 [Hz],縦軸を音圧レベル [dB]または騒音レベル [dBA] としたグラフは見られませんでした(調査不足なだけ).なので,今回は [dB] による周波数分析を試みます.

#解析対象のデータのFFT条件
・解析対象は,ホワイトノイズ環境下で外壁タイルを1秒間に1回の頻度で10秒間加振した時の打音データです.
・サンプリングレート fs:8192 Hz
・FFTブロックサイズ block_size:8192 点
・オーバーラップ overlap:0.75
・周波数分解能 df:1.

元記事を表示

python&jupyterlabのコンテナ構築

## はじめに
Jupyterlabを使いPython環境を利用するコンテナを構築したので、その時の手順をメモとして残しておく。

## 実行環境
【Docker導入環境】
  ・Ubuntu 18.04 LTS(GCP上)
  ・docker 19.03.13

## 手順
1.環境準備
2.Pythonコンテナを構築
3.SSHサーバー機能を追加
4.JuypterlabとSSHの同時起動

## 1.環境準備

**GCP上にVMインスタンスを作成**

**dockerのインストール**
 [【Dockerコンテナ内のUbuntuではsystemctlは使えない】](https://qiita.com/smiler5617/items/2a33d1aba0174480e9d3)の手順1を参考に。

## 2.コンテナ構築

ベースイメージを取得

“`shell:
$ docker image pull python:3
“`

コンテナを作成

“`shell:
$ docker container run -it -d –name python-con1 p

元記事を表示

Python + Selenium でGoogleフォームの自動提出 on Heroku & LINE Notify

# 作ったプログラムの概要
Heroku上で、体温記録用のGoogleフォームを自動で入力して、提出するプログラムを作る「夢」を見ました。

以下は夢の記録です。

あと、提出したことがわかるようにLINE Notifyで通知するようにしました。
何番煎じだよ…って感じのネタですが…w

おおまかな流れとしては

GoogleフォームのURLを改変

seleniumでURLを開く

送信ボタンクリック

LINE Notifyで通知

という感じです。

HerokuでSchedulerアドオンを使い、決まった時間に自動で実行するようにしています。
# デプロイしたフォルダの構造と各ファイルの中身
“`:autoformフォルダの構造
autoform
├── .fonts
│   └── GenEiMGothic-Regular.ttf(フォントファイル)
├── autoform.py(プログラム本体)
├── requirements.txt(Pythonプログラムで使うモジュールを指定するファイル)
└── runtime.txt(Pythonのバージョンを指定するフ

元記事を表示

指数関数的なパルスの時系列データをpythonで生成する方法

# 指数関数的なパルスの時系列データの使い所

光子検出器のパルスの検出する為に、擬似的に時系列データを生成して、シミュレーションするような場合に、パルスをpythonで簡単に生成したい場合に用いる。

コードを読めばわかる方は、[google Colab のページ](https://colab.research.google.com/drive/11h8irfUb0BB5GKwxUHLsHjLzsNu25_QG?usp=sharing) を参照ください。

## パルスの発生方法

おそらくもっとも簡単なパルスの波形は、指数関数の差を使うものであろう。
a をパルスの減衰時定数、b をパルスの立ち上がり時定数、Aを振幅とすると、

“` math:
A \times ( e^{-t/a} – e^{-t/b} )
“`

のようにかける。

## 1発のパルスの生成方法

“` python:
# 2つの指数関数の差で波形を形作る
def pulse(a = 1.0, t1 = 1e-3, t2 = 5e-3, dlen=1024, dt = 1e-4):
t = np

元記事を表示

太陽光発電の発電量をロギングしてみた。(4)Salesforseでリアルタイム監視

[【太陽光発電の発電量をロギングしてみた。目次】](https://qiita.com/takoyakiya/items/6b318ab83bcac86c966c)
## Salesforseでリアルタイム監視

前回まででINA260で測定した電流・電圧値をRaspberryPiでロギングできるようになったが、せっかくなので、インターネット上にアップロードして発電量をどこからでも確認できるようにしたい。

その方法の選択肢は様々あると思うが、今回はSalesforceのDeveloper Editionを利用した。

#### ● Salesforceを利用するメリット

1. PaaS (Platform as a Service)であること
 クラウドサービスには大きく分けて、IaaS(Infrastracture as a Service),PaaS (Platform as a Service),SaaS (Software as a Service)の3つが存在する。
 SalesforceはPaaSに属している。
 PaaSは、IaaSのような環境構築が不要で、かつ

元記事を表示

DockerでPython(Django)学習環境を作ってVSCodeでデバッグできるようにする(ほぼ自分用手順メモ)

# この記事について

タイトルの通りです。
Djangoの勉強をするにあたって学習環境を構築したので、その手順メモをここに残します。
解説は一切ないので、どういうツールが入ってるとかどういう仕組みで動いてるとか一切興味ない、あるいはもう知ってるから環境構築だけさせてくれ!という人向けの記事です。
というか自分の備忘録的メモです。
Windows10環境にて実行しています。

# やりたいこと

– Djangoの勉強をしたい
– VSCodeでデバッガを使ってステップ実行とかもしたい
– Python仮想環境がどうとかで煩わしい思いをしたくない、PCの環境汚したくない

⇒Dockerで環境作ればいいよね!

# WSL2をセットアップする

WSL2(Windows Subsystem for Linux 2)が未セットアップの場合、まずはWSL2をセットアップします。手順は下記です。
https://docs.microsoft.com/ja-jp/windows/wsl/install-win10

使用するLinuxディストリビューションはどれでもいいです。
私はUbuntu

元記事を表示

pythonでのWebアプリケーション開発メモ

#はじめに
pythonでスクレイピングを学んだ後に、取得したデータを利用したWebアプリケーションを作りたくなったので、実現方法を調べたメモです。

##どのフレームワークがよいか?
Djangoというフレームワークがおススメとのこと。

– 参考記事:[PythonでWebアプリケーションを開発!人気のフレームワークも大紹介](https://www.sejuku.net/blog/87802)

Djangoの詳細はこちら。

– [Django ドキュメント](https://docs.djangoproject.com/ja/3.1/contents/)
– [Github](https://github.com/django/django)

##Djangoのインストール方法
以下を参照した
[【Django入門】あなたのパソコンにDjangoをインストール!](https://www.sejuku.net/blog/28235)

`$ pip install django`を実行しようとしたところ、pip自体のバージョンが古いと言われ、アップデートする必要があった..

元記事を表示

強化学習で酔っ払いの挙動を見る

#強化学習を勉強したい
普段私は業務でAI/機械学習に触れています。
ただ今までは教師あり学習を中心に勉強してきたのもあり、教師なし学習や強化学習についてあまり触れたことが無いなと思いました。
そこで昨日、強化学習ハンズオンに最適な[こちらの記事](https://qiita.com/Hironsan/items/56f6c0b2f4cfd28dd906)を拝見し、実際自分もやってみようと。

やるにしても何かテーマが欲しいなぁと思いつつ記事を眺めていると、エージェントの動きに「__あれこれ酔っ払いみたいじゃね?__」と感じてしまいました。
[こちらの記事](https://qiita.com/Hironsan/items/56f6c0b2f4cfd28dd906)では、始点から終点までの最適経路を求める強化学習をテーマとしていました。
エージェントは80%の確率で希望の方向に進み、10%の確率で左方向、10%の確率で右方向へ行ってしまう設定になっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazon

元記事を表示

PythonでProtocolを使って静的ダック・タイピング

この記事はニフティグループ Advent Calendar 2019の14日目の記事です。
昨日は@mito1296さんの「Terraformで立てたec2インスタンスをAnsibleで管理してみる」でした。
同様の問題に以前悩まされたことがあったのでタグ付けは非常に綺麗な解決方法だなと感心しました。
機会があれば、うちのチームでも導入したいですね!!

# TD;LD
Pythonは型安全で無いので大きめのプロジェクトになると心理的な安全が担保できないので敬遠していました。
しかし、Python3.5以降typingが導入されmypyと組み合わせることで、少し大きめのプロジェクトでもコーティングする際に心理的な安全を得ることができるようになったので中規模の開発に採用できるようになりました。

今回は、python3.8から`typing.Protocol`が正式に追加されたようなので紹介してみます。

# typing.Protocolとは

詳しくは、以下を見てください。
https://docs.python.org/ja/3/library/typing.html#typing

元記事を表示

Pythonで関数実行時に引数の型アノテーションをチェックしてエラーにする

# はじめに
Pythonをお使いの方なら既知ですが、Pythonでは型による強制力はありません。
型アノテーション([typing](https://docs.python.org/ja/3/library/typing.html))がPython3.5で追加されるまでは型の記述もできませんでした。
コメントや変数名で空気を読むしかできないわけです。
(個人的に辞書は最悪でした)

なので型アノテーションが実装されてからは本当に助かっています。
もう癖になっているので書かない方が違和感があります。
(同じ思いの方も多いかと思います笑)

ただ依然として強制力はなく、mypyやVSCode拡張のPylanceでチェックができるに留まっています。
第三者にモジュールとして提供する場合はIFの型チェックはできないわけで実装の中でケアしないといけないです。
こういったケア(チェック処理)をわざわざ1つ1つに対して書くのは手間で本質的ではないので,
簡潔に書きたいというのがモチベーションです。

# アプローチ
Pythonにはデコレータという便利な機能があります。
デコレータを使うと関数の実

元記事を表示

Effective Python 学習備忘録 6日目 【6/100】

## はじめに
Twitterで一時期流行していた 100 Days Of Code なるものを先日知りました。本記事は、初学者である私が100日の学習を通してどの程度成長できるか記録を残すこと、アウトプットすることを目的とします。誤っている点、読みにくい点多々あると思います。ご指摘いただけると幸いです!

## 今回学習する教材

– [Effective Python](https://www.amazon.co.jp/Effective-Python-%E2%80%95Python%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E6%94%B9%E8%89%AF%E3%81%99%E3%82%8B59%E9%A0%85%E7%9B%AE-Brett-Slatkin/dp/4873117569/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=Effective+python&qid=1609408832&sr=8-3

元記事を表示

【Python】複数の画像の代表値をとる【Numpy】

# 目的
複数の画像の各ピクセルの代表値を使って画像を生成する。
例えば10枚の画像の平均画像を作りたい。

# 準備
## ライブラリのImport
“`python
import numpy as np
from scipy import stats
“`
## 画像
10枚のRGB画像。
10枚の平均画像、中央値画像、最頻値画像をそれぞれ生成する。

“`python
imgs.shape # (10, 128, 128, 3)
“`
# 平均
x.shapeでaxisに設定したい軸を確認できる。

“`python
img_mean = np.mean(imgs, axis=0)
img_mean.shape # (128, 128, 3)
“`
# 中央値
“`python
img_median = np.median(imgs, axis=0)
img_median.shape # (128, 128, 3)
“`
# 最頻値
numpyに最頻値を求めるライブラリがないのでscipy。
他にいい方法あるかも。

“`python
# 返値

元記事を表示

pdf形式のレポート作成をPythonで自動化してみる

#はじめに
・この記事では、家計簿アプリZaimからダウンロードしたデータを使います。もっと言えば、pythonを用いて、データから1年間の収入と支出をまとめたレポートをpdf形式で自動生成します。

・ソースコードと記事は、たぶん書き方が下手くそで美しくないところが多いと思いますが、許してください。

・筆者は「pythonを使いこなせば自動化できる!」って謳い文句につられてpythonを勉強し始めました。
 でも、初心者に優しい実践的な自動化の具体例があまりないと思っています。(大きな偏見あり)
 そこで、特に初心者の方に、pythonで自動化できるものには、こんなのがあるんだと知ってもらえると嬉しいです。

#家計簿アプリZaimってなに?
↓ とりあえず公式のホームページ
https://zaim.co.jp/

筆者が愛用している家計簿アプリ。(2020年5月ぐらいから有料会員。)
月ごとの収入と支出等を、円グラフや積立棒グラフ等を使って分析できるのですごい便利。

そして、Zaimの有料会員になると、集めてきたデータをcsv形式でダウンロードすることが出来る。(ファイル

元記事を表示

OTHERカテゴリの最新記事