- 1. Python3学習記録#1
- 2. 【Pandas高速化】奇数行 or 偶数行にフラグを立てる
- 3. 【Python】rootユーザー以外のユーザーでpipしたときにパーミッションで怒られた話
- 4. [Python 入門] 日経平均とNYダウのcsvデータを結合する
- 5. Python logging モジュールの使用を開始するための最低限の知識
- 6. if __name__ == “__main__”ってなんだ
- 7. Pythonウェブアプリケーション実行・デプロイ
- 8. 【Python】リストの要素だけを並べて表示させる(縦並び、横並び)
- 9. gRPC でテキストと画像を取得 (python)
- 10. pythonのtkinterで有効期限を表示するだけの処理
- 11. Atcoderの過去問精選10問をpythonで解いてみた!
- 12. 【Python】汎用コンテナとclassを相互に変換する
- 13. Python入門(Python版 APG4b)
- 14. Pythonでオウム返しをするLinebotのエラー対応
- 15. 【初心者向け】Anacondaインストール後にやるべきこと
- 16. [Python 入門] pandasを使ってみよう
- 17. Selenium on Python : Webdriver.Chrome()でエラーが出た話
- 18. python モジュールimport方法について
- 19. [Python 入門] pandasを使ってみよう
- 20. Hello world!から始めるPython
Python3学習記録#1
#変数の宣言
“`python:variable
# 変数の宣言
age = 18
name = ‘太郎’
is_ok = True# 出力
print(age)
print(name)
print(is_ok)
“`
Pythonでは、型の宣言不要。#変数の型の調べ方
“`python:variable_type
age = 18
name = ‘太郎’
is_ok = True# 変数の型を出力
print(age, type(age))
print(name, type(name))
print(is_ok, type(is_ok))
“`
型がわからないときは、type関数を使う。#型の変換
“`python:type_casting
age = 18
number = ’18’# #型の変換(キャスト)
new_age = str(age)
new_number = int(number)print(new_age, type(age))
print(new_number, type(number))“`
#Pythonはスネーク
【Pandas高速化】奇数行 or 偶数行にフラグを立てる
# はじめに
データを処理する上で、奇数行 or 偶数行にフラグを立てるという作業が発生した。
その際に高速化のために色々と試したのでメモっておく。# 前提条件
前提条件として、以下のような10000行のデータフレームを持っているとする。“`python
df = pd.DataFrame({‘hoge’:np.zeros(10000)}
df
“`
| | hoge |
|:–|:–|
| 0 | 0.0 |
| 1 | 0.0 |
| 2 | 0.0 |
| 3 | 0.0 |
| 4 | 0.0 |
| … | … |
| 9995 | 0.0 |
| 9996 | 0.0 |
| 9997 | 0.0 |
| 9998 | 0.0 |
| 9999 | 0.0 |このデータフレームに、’target_record’という奇数行 or 偶数行にフラグがたった以下のような列を追加する。
“`python
df[‘target_record’] = [1,0,1,0,1,…,0,1,0,1,0]
df
“`| | hoge | targe
【Python】rootユーザー以外のユーザーでpipしたときにパーミッションで怒られた話
# エラー発生
pipでモジュールをインストールしたいと思い、下記のコマンドを実行しました。“`sh:失敗コマンド
pip install kanjize -t ./python
“`“`sh:実行エラー
PermissionError:
“`上記のように、実行すると、権限が無い為、実行エラーになりました。
# はじめにやったこと
“`sh:はじめにやったこと
sudo pip install kanjize -t ./python
“`
実行した結果、上手くいきませんでした。RootユーザーのPythonバージョンを調べてみると・・・
“`
sudo python -V
⇒Python 2.7.16
“`通常のバージョンは、
“`
python -V
⇒Python3.7.6
“`ルートの参照しているPythonが違いました。
# 解決する為にやったこと
今回は、pipさえできればいいので、下記のコマンドで、Python3.7.6のパスを調べ、“`
which python
⇒/usr/bin/.pyenv/shims/py
[Python 入門] 日経平均とNYダウのcsvデータを結合する
#[Python 入門] 日経平均とNYダウを結合する
今回はタイトルを変えてみましたが内容にあまり変わりません。
前回の続きをやっていきます。
##データの準備
今回は2つのcsvデータ(日経平均とNYダウ)を使います。“`
nikkei = pd.read_csv(“nikkei.csv”, parse_dates=[‘データ日付’]) #csvデータを読み込む
nikkei.tail()
“`
NYのデータは画像のとおりです。“`
NY = pd.read_csv(“NYd.csv”, parse_dates=[‘データ日付’])
NY.head()
“`
##データの結合をする
“`
#データの結合をする
join_data = pd.merge(nikkei, NY[[“データ日付”, “終値”, “始値”, “高値”, “安値”]], on=”データ日付”, how = “left”)
join_data.tail() #表示してみる
“`
日経平均のデータにNYダウのデータを結合します。データ日付を共通なものとして結合させました。”~_x”が日経平均、
Python logging モジュールの使用を開始するための最低限の知識
# Python logging モジュールの使用を開始するための最低限の知識
この記事では、最小限の知識でアプリ開発のPythonロギングモジュールを開始する方法について説明します。
すぐに開発で使える最小限の知識だけをまとめていますので足りない情報は補いつつ、スタート地点として利用していただければと思います。##loggingの基本機能
print文のようなものです(でも、これではloggingの意味がないのでこんな風に使わないでくださいね。)
“`python:logging-example
import logging
logging.warning( ‘Watch out!’)#コンソールにメッセージを出力します
logging.info( ‘I said so’)#defaultのlog levelではwarningなので、コンソールには何も出力されないはずです
“`## アプリ開発でloggingを使用するための必要最低限の知識と設定
### logger
* logger object
* 使用するロガーを設定
* ログレベルを設定(DE
if __name__ == “__main__”ってなんだ
#if __name__ == “__main__”: の目的
一言で言うと、このPythonファイルが「**python ファイル名.py** というふうに実行されているかどうか」を判定するif文です。“`python
def main():
print(“Hello”)
main()
“`“`
$python hello.py
#>>>Hello
“`“`
$import hello
>>>Hello
“`$import helloと書いただけでもプログラムが実行されてしまう…
これを防ぎたいので
if __name__ == “__main__”
と書いてる!!
Pythonウェブアプリケーション実行・デプロイ
## 始める前に
**1. GCPプロジェクトを作成**
Cloud shellを開いて次のコマンドを実行
`gcloud project create [your_project_id]`
**2. プロジェクトでAppEngineアプリケーションを初期化し、リージョンを選択**
`gcloud app create –project=[your_project_id]`
**3. 前提条件をインストール**
次のコマンドを実行して、Python 用の App Engine 拡張機能が含まれている gcloud コンポーネントをインストールします。
`gcloud components install app-engine-python`
:bulb:インストールされたコンポーネントリストを取得は次のコマンドを実行
`gcloud components list`
こんな風に
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581348/a45833ee-2630-7680-b15d-
【Python】リストの要素だけを並べて表示させる(縦並び、横並び)
#はじめに
オンラインでのプログラミング学習、スキルチェックなどで出力の方法が限定されていることが多々あると思います。
自分も答えは出ているのに思ったように出力できないことがあったので調べたことをまとめてみました。#リストの要素を縦に並べて表示させる
[方法1]リスト内包表記の中にprint()を入れる“`ex.py
L = [“a”,”b”,”c”,”d”][print(i) for i in L]
“`[方法2]1文字ずつ文字列をスライスしてprint()を入れる
“`ex.py
L = [“a”,”b”,”c”,”d”]for i in L[0:]:
print(i)
“`いずれにしても実行結果は以下のようになります。
>a
b
c
d#リストの要素を横に並べて表示させる
###.join()を用いることで空白を開けて表示させる“`ex.py
L = [“a”,”b”,”c”,”d”]L=’ ‘.join(L)
print(L)
“`実行結果は以下のようになります
>a b c d`’,’.join`を用いると
gRPC でテキストと画像を取得 (python)
参考ページ
[gRPCとProtocol Buffersによるアプリケーション間通信 / Python](https://note.com/npaka/n/n5c3263ad88ff)“`text
$ tree
.
├── in01.jpg
├── simple_client.py
├── simple.proto
└── simple_server.py
“`設定ファイル
“`text:simple.proto
syntax = “proto3”;package simple;
//RPCインタフェースの定義
service SimpleService{
rpc SimpleSend (SimpleRequest) returns (SimpleReply) {}
}//リクエスト
message SimpleRequest{
}//レスポンス
message SimpleReply{
string text = 1;
string image = 2;
}
“`サーバープログラム
“`py:simple_server.py
#!
pythonのtkinterで有効期限を表示するだけの処理
# 事の発端
ソフトの有効期限を表示する処理を作って、関数をクラスにしてファイルに分離したので、コードをちょいと公開しようと思いました。# 動作環境
windows10
PyCharm
Python# コード
まずは、関数だけのコードです。コンソールに使用期限を表示します。“`python
import datetimedef main():
dict_end_date = {“年”: 2020, “月”: 2, “日”: 8, “時”: 23}dt_now = datetime.datetime.now()
end_date = datetime.datetime(dict_end_date[“年”], dict_end_date[“月”], dict_end_date[“日”])if end_date < dt_now: print("ソフトの使用期限が終了しています。") else: print("ソフトの使用期限は、" + str(dict_end_date["年"]) + "年"
Atcoderの過去問精選10問をpythonで解いてみた!
# はじめに
Atcoder初心者です。練習のためにこの記事の問題([AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~](https://qiita.com/drken/items/fd4e5e3630d0f5859067#5-%E9%81%8E%E5%8E%BB%E5%95%8F%E7%B2%BE%E9%81%B8-10-%E5%95%8F))をpythonで解いてみました。## 第 1 問: [ABC 086 A – Product](https://atcoder.jp/contests/abc086/tasks/abc086_a)
“`python
a, b = map(int, input().split())
if (a*b)%2 ==0:
print(‘Even’)
else:
print(‘Odd’)
“`## 第 2 問: [ABC 081 A – Placing Marbles](https://atcoder.jp/contests/abc081/tasks/abc081_a)
“`p
【Python】汎用コンテナとclassを相互に変換する
## ざっくり要約
かなり間が空きましたが、以前書いた記事の続編的位置づけです。
今回作ったものは[github](https://github.com/akio-1978/object_converter)に上げました。pipでインストールできる形にしてあるのは自分用です。#### やりたかったこと
1. jsonで受け取ったデータ構造をちょこちょこ処理して、別のデータ構造でDynamoDBにputしようとした。
2. dictやlistを直接操作するコードが増えてうんざり。**意味のあるデータ自身に振舞いを持たせたい**というオブジェクト指向気取りな気分になる。
3. ならばclassに変換してしまおう。処理結果のクラスをdictに変換してしまおう。#### 実際にやったこと
1. 「dictやlistなどの汎用コンテナで作られた構造」を「任意のclass構造」に変換する。それと、その逆。[^generic-conteiners]
2. 変換ルールを定義するためのマッピングをdictで作って、それに従って変換するクラスを作りました。
3. 使用例をユニットテストで紹介します
Python入門(Python版 APG4b)
# 本記事について
競技プログラミングサイトの [AtCoder](https://atcoder.jp/home) にはプログラミング入門教材の「[AtCoder Programming Guide for beginners (APG4b)](https://atcoder.jp/contests/APG4b)」があります。プログラミング入門教材として非常に完成度が高く、競技プログラミングの主流言語である C++ が使われています。
そこで、本記事では APG4b を元に、それの Python 版を書きました。基本的には APG4b を読み進めて、Python 独自の部分は本記事を参考にして頂ければと思います。大部分が APG4b を元にしているため、本記事が問題あるようでしたらすぐに削除します。
各節の見出しが本家へのリンクになっています。
節タイトルは本家に合わせているため、Pythonの用語と一部異なる部分もあります。# 目次
[1.00.はじめに](https://qiita.com/saba/items/b9418d7b54cce4b106e4#100%E3%
Pythonでオウム返しをするLinebotのエラー対応
#はじめに
QiitaやWEB上には、オウム返しLinebotの作り方は、たくさんあります。参考
https://qiita.com/kro/items/67f7510b36945eb9689bこれらを参考に進めれば、基本作成完了しますが、
Herokuデプロイ時にエラーがたびたび発生し、私が初心者であるが故、エラー解消が結構大変でした。
なので、私が遭遇したエラーについて、対処法を記述していきます。#開発環境
OS:Widows10
Python3.7.6
Flask1.1.1
line-bot-sdk1.15.0
#準備するファイル群
まず、main.py
サイトに載っているコピペで構わないと思います。
特に書き換えは必要なくいけました。“`python:main.py
from flask import Flask, request, abort
from linebot import (
LineBotApi, WebhookHandle
【初心者向け】Anacondaインストール後にやるべきこと
# はじめに
– タイトルの通り、Anacondaインストール直後にやるべきことのメモです。
– 初心者向けです。とはいえ、他のプログラミング言語経験があって、機械学習とかそこそこ複雑なことがやりたい人向けです。
– 環境:
– windows 10(OS依存の話は少な目です)
– Anaconda3-2019-10
– Anacondaをインストールした直後からパッケージを追加しようとする前の話です。
– 必要な情報は基本的には別サイトで説明されていますので、まとめというかほぼ備忘録となります。# パッケージ管理ツールについて理解する
– 機械学習、webアプリ開発など、特に業務でpython使う場合には、基本的に自分で必要なパッケージを追加していくことになります。
– パッケージの追加方法について、Webの情報では、それぞれ異なるパッケージマネージャーのどれかを前提としての説明が多く、単純にコピペではなく自分で違いを理解して必要に応じて書き換える必要があります。
– ということで`conda`(パッケージ管理ツールとして), `pip`, `conda-forg
[Python 入門] pandasを使ってみよう
#[Python 入門] pandasを使ってみよう
第3回になります。今回は題材の日経平均らしいことをやっていきます。
まずいつもどおりcsvデータを読み込んでおきます。“`
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import datasetsplt.style.use(‘ggplot’) #おまじない
font = {‘family’ : ‘meiryo’}nikkei = pd.read_csv(“nikkei.csv”, parse_dates=[‘データ日付’]) #csvデータを読み込む
nikkei.head() #概要を見てみる
“`#日時収益変動率とヒストグラム
最初に日時収益変動率を計算して、図に表してみます。“`
nikkei[‘Day. Change P’] = (nikkei[‘終値’] – nikkei[‘始値’]) / nikkei[‘始値’] #日時収益変動
Selenium on Python : Webdriver.Chrome()でエラーが出た話
Webスクレイピングの初導入にて、以下のエラーが発生。
1.’chromedriver’ executable need to be on PATH
2.cannot find Chrome binary##結論
1.chromedriver.exeがある場所にPATHを通す or スクリプト内でwebdriver.Chrome(‘chromedriver.exeのパス’)
2. Googleブラウザがなぜか見つからないのが原因→システム環境変数PATHにブラウザのパスを登録し再起動##環境
Windows 10
Python 3.8.1
selenium 3.141.0## seleniumとは
Web操作をプログラミング言語で行えるサードパーティ(pipを用いてインストール)“`powershell:cmd
(vitualforwin) C:~:~:~> pip install selenium
“`##エラーが出たコード
“`python:first.py
from selenium import webdriverdriver = webdri
python モジュールimport方法について
importとかfromとかよく使うけどなんとなくで使っていてよくわかっていないのでまとめる.
pythonだとpath周りとかかなりめんどくさい印象があるけどそれをなんとかできたらいいな
大部分を[入門python3](https://www.amazon.co.jp/%E5%85%A5%E9%96%80-Python-3-Bill-Lubanovic/dp/4873117380)から学んでいます.
## インポート方法まとめ
| Left align | Right align |
|:———–:|:————:|
| モジュールを読み込む | import module |
| モジュールからメソッド,クラスを読み込む | from module import method, class |
| パッケージからモジュールを読み込む | from package import module |
| パッケージの中のモジュールのメソッド,クラスを読み込む | from package.module import method, class |
[Python 入門] pandasを使ってみよう
#[Python 入門] pandasを使ってみよう
前回の続きと改善していきたい点を紹介します。
さてこんな感じで図ができていました。
![2020-02-06 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574563/8b684549-9499-b451-ec4d-5611cf118c46.png)
(前回は”matplotlib”の設定がわからず軸名に日本語が使えていませんでした。今回は修正したため、図の軸名が日本語で表示できています。)さてもう少しこのデータで遊んでみましょう。前回の続きのコードとなります。
“`
nikkei.corr()
“`とすると相関関係の表が得ることができます。
“`
ax = sns.heatmap(nikkei.corr(), annot=True)
“`さらにとすればヒートマップというものを作ることができます。こんな感じ…
![2020-02-06 (1).png](https://qiita-image-store.s3
Hello world!から始めるPython
## はじめに
Pythonを始める初心者向けの記事です。
今回は”Hello world!”を出力するプログラムを書いてみましょう。## 何故”Hello world!”から始めるのか
言語を学ぶにあたり、まずは文字列の出力という一番簡単な操作を実践してみることはとても大切です。例えグーグルの超優秀なAIエンジニアであっても、最初の一歩は必ず”Hello world!”からだったはずです。
AIエンジニアを目指した駆け出しエンジニアのあなたも、さっそく”Hello world!”をpythonで記述してみましょう。
## 環境構築
Macではpython2.7がデフォルトでインストールされているので環境構築は不要です。
Windowsを使っている方はMacを買いましょう。## Pythonの起動
terminalを開いて、次のワンコマンドでpythonが起動できます。“`
python
“`
## Hello world!の出力
`import __hello__`コマンドを利用します。“`
>>> import __hello__
Hello wo