- 0.0.1. Githubに100MB以上のファイルをプッシュする方法
- 0.0.2. Apache AirflowのDAG設定値についてまとめてみる
- 0.0.3. DropboxAPIのAccessToken&RefreshToken備忘録
- 0.0.4. 【Pythonで作図】忙しい人のための Matplotlib【初心者向け】
- 0.0.5. データフレーム同士の結合(merge関数) について
- 0.0.6. 『Python2年生 スクレイピングのしくみ』で勉強中(その1)
- 0.0.7. requestsで非同期Asyncリクエスト【HTTPX】
- 0.0.8. Python3エンジニア認定基礎試験の勉強でつまずいたところ【ユーザー定義関数編】
- 0.0.9. 【Django】インストール方法
- 0.0.10. 競馬予想AI 勉強メモ#1 pandas DataFrameの特定行の抽出方法
- 0.0.11. discord、どう動いてる?
- 0.0.12. FastAPI: SQLAlchemy で MariaDB を使う (その 4)
- 0.0.13. Pythonで作るスネークゲーム
- 0.0.14. asyncio、コルーチン、async/await
- 0.0.15. JPXのデータを用いてデータ分析をしていく【データ読み込みからデータの中身理解】(Kaggleコンペ)
- 0.0.16. boto3を使って、さくらのオブジェクトストレージにファイルをアップしてみる
- 0.0.17. データフレームのある列をインデックスに設定する df.set_index()
- 0.0.18. FastAPI: SQLAlchemy で MariaDB を使う (その 3)
- 0.0.19. FastAPI: SQLAlchemy で MariaDB を使う (その 2)
- 0.0.20. 超初心者が適当に選んだC問題を解きまくってみた【Python】
- 1. 116 Grand Garden
Githubに100MB以上のファイルをプッシュする方法
# はじめに
– GitHubでは100MB以上のファイルをプッシュすると拒否され、50MB以上のファイルをプッシュすると警告される仕組みとなっています。
– 今回はGitHubに100MB以上のファイルをプッシュする方法を考えてみたいと思います。# Githubに100MB以上のファイルをプッシュする方法
– 100MB以上のファイルをそのままプッシュするとGithubに拒否されてしまうため、ファイルを分割してプッシュしようと思います。
– また、50 MBより大きいファイルを追加または更新しようとすると、Githubから警告が表示されるので、49MBでファイル分割しようと思います。
– 具体的には、ZIPファイルをbase64にエンコードして、49MBのテキストファイルに分割してプッシュします。
– 元のファイルに戻すときは、分割したテキストファイルのテキストを結合して、デコードすればZIPファイルに戻ります。# 実装
Pythonで実装したコードが以下です。### フォルダ構成
“`
ディレクトリ
├─main.py
├─setting.json
├─input
Apache AirflowのDAG設定値についてまとめてみる
前回Cloud Composerを利用して、BigQueryへのデータの取り込みについて記事を書きましたが、DAG実装の詳細(特に各パラメータの役割)については、記事が長くなりすぎるので割愛しました。なので今回から複数回に渡って、以下の内容を深堀りしていこうと思います。
– DAGの設定値について(今回分)
– テンプレート内で利用可能な変数について## DAGとオペレータについて
細々した話をする前に、まずはDAGとオペレータの概略からまとめてみました。
|構成要素|概要|
|—|—|
|オペレータ|処理を定義するための関数。クラウド操作毎に細かく用意されているため、自身がやりたい処理のオペレータの利用方法を調べる必要がある。前回BigQueryへのデータ取り込みで使用したオペレータは、「GoogleCloudStoragePrefixSensor」、「GoogleCloudStorageToBigQueryOperator」、「DummyOperator」です。|
|DAG|オペレータから定義された処理+処理同士の前後関係の情報をもった処理のグループのことです。|
DropboxAPIのAccessToken&RefreshToken備忘録
# 結論
DropboxAPIのAccessTokenは一定期間でリセットされアクセス出来なくなる。
毎回AccessTokenを発行しなおすのは面倒なので、RefreshTokenを発行し接続することで回避する。## AccessTokenの発行方法(一応)
https://www.dropbox.com/developers/
ここにアクセスし、**アプリを作成** or **右上のAppConsole**から選択
permissonから必要な権限を有効化し、ダッシュボードの“`setting/Oauth2/GenerateAccessToken“`で発行する。
### AccessTokenでの利用方法
“`
import dropboxdbx = dropbox.Dropbox(`
‘)
“`## RefreshTokenの発行方法
まずはauthorization_codeを取得する。(後で“`“`に入力する) ダッシュボードの“`setting“`にある**App key
【Pythonで作図】忙しい人のための Matplotlib【初心者向け】
# ✨Python って作図がカンタン!✨
**「Pythonで作図」**…。ネットにはたくさん記事があるけど、どれも**ややこし**くて**難しい**ですよね。
そんな方々のために、**手っ取り早く**て**分かりやすい**「Python 3分クッキング」をやっていこうと思います!# 0. 完成目標
これを作ります。
“`python:完成コード
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-100,100,0.1)
y = np.sin(x)/x
plt.plot(x,y)
plt.show()
“`
**結果**
![20220430test01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648376/3bd487ad-d20b-00c3-be35-357b0dab9880.png)では、始めます。
# 1. これをコピペ
“`python:【必須】おまじない(計算と作図に必要な道具を準備
データフレーム同士の結合(merge関数) について
「このデータは、数学のテストの結果で」
「このデータは、英語のテストの結果で」このようなデータフレームはまとめたいデータだと思います。
このようなデータを一つに結合させることができれば、情報がより分かりやすくなりますよね。
その時に用いる関数が`merge`関数ですこれはそれぞれのデータを横方向に結合させることができる関数です。
ちなみに今回の記事の範囲外になりますが、同じ種類のデータを結合させたいとき
つまり縦方向にデータを結合させたいときは、pandasライブラリにある`pandas.concat`メソッドです。では実際に、merge関数を使用していきましょう。
“`Python
import pandas as pd
import numpy as np
“`
“`Python
df01 = pd.DataFrame( {‘name’:[‘A’, ‘B’, ‘C’],
‘math’:[60, 70, 80]})
df01
“`“`
name math
0 A 60
1 B 70
2 C 80
“`“`
『Python2年生 スクレイピングのしくみ』で勉強中(その1)
## この記事について
『Python2年生 スクレイピングのしくみ』(以下、書籍)でPythonを学習する超初心者の記録です。
『Python1年生』は人工知能を題材に、Pythonの基本的な文法等を解説していましたが、
こちらの書籍ではスクレイピングということで、人工知能とは別の題材になっています。■ バックナンバー
– [『Python1年生』で勉強中(その1)](https://qiita.com/megrim_q/items/c1417f507e96c1fb7015)
– [『Python1年生』で勉強中(その2)](https://qiita.com/megrim_q/items/333be033e5b4637d0eed)
– [『Python1年生』で勉強中(その3)](https://qiita.com/megrim_q/items/904f83c6a7e8594b7212)## 実行環境
| OS・MW・ライブラリ | バージョンなど |
|:-:|:-:|
| OS | Windows 10 Pro 21H2 19044.1645 |
| Pytho
requestsで非同期Asyncリクエスト【HTTPX】
https://colab.research.google.com/drive/1O7v-OLPpb0yG56n1PjkvuBDH0HsYl3-8?usp=sharing
# requestsをインストール
“`bash
pip install httpx
“`# requestsをインポート
150個のリクエストを作成します。
“`python
import httpx as requests
from asyncio import run, gatherurls = [f”https://pokeapi.co/api/v2/pokemon/{n}” for n in range(1, 151)]
“`# 同期(Sync)リクエスト 処理時間8.8秒
“`python
def sync_func():
print([requests.get(u) for u in urls])sync_func()
“`![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c
Python3エンジニア認定基礎試験の勉強でつまずいたところ【ユーザー定義関数編】
# はじめに
2022年4月15日、Python3エンジニア認定基礎試験に合格しました。
試験対策は各認定スクールさんが出している模擬試験で行っていました。
模擬試験を解いていて、プログラミング初学者の私がつまずいたところを備忘録としてまとめようと思います。
今後同じ箇所でつまずいた方の一助となれば幸いです。
*問題は一部改変しています。# 模擬試験の問題
##### 問1.以下のプログラムを実行した際の出力結果を答えよ。
“`python:test.py
def dive_into_code(teacher, L = []):
L.append(teacher)
return Lprint(dive_into_code(‘Noro’))
print(dive_into_code(‘Nakao’))
print(dive_into_code(‘Miyashita’))
“`
***正解***がこちら。
“`console:console
[‘Noro’]
[‘Noro’, ‘Nakao’]
[‘Noro’, ‘Nakao’, ‘Miyashita’]
“`
こ
【Django】インストール方法
## インストール方法
インストール方法は、ディストリビューション固有のパッケージをインストールするのか、 最新の公式リリースをダウンロードするのか、あるいは最新の開発版を取得するのかに よって、若干異なります。
以下はpipにてインストールする方法になります。1. pip で公式リリースをインストールする。
これは Django をインストールするのにお勧めの方法です。
2. pip をインストールします。最も簡単なのは、スタンドアロンの pip インストーラを使うことです。ディストリビューションに既に pip がインストールされている場合、それが古ければ 更新する必要があるかもしれません。古い場合、インストールが失敗します。
3. 仮想環境の作成と起動が完了したら、コマンドを入力します。“`
$ python -m pip install Django
Collecting Django
Downloading Django-4.0.4-py3-none-any.whl (8.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
競馬予想AI 勉強メモ#1 pandas DataFrameの特定行の抽出方法
競馬予想AI作成中にpandasのDataFrameの特定行を抽出したくなった際のメモです。
(参照:https://www.yutaka-note.com/entry/pandas_access#DataFrame%E3%81%AE%E8%A1%8C%E5%88%97%E5%80%A4%E3%82%92%E6%8A%BD%E5%87%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)特定の行を指定|df.loc[インデックス名, : ] または df.loc[インデックス名]
以上。これだけ!!
discord、どう動いてる?
# 動機
普段使用しているpycordはどのようにして動いているのか気になったので。# 仕組み
ベース:
APIのバージョンは8以上が推奨されています。[参考](https://discord.com/developers/docs/reference#api-versioning)**下準備**
“`python
from pprint import pprintAPI_VERSION = 9
BASE_URL = “https://discord.com/api/v{}”.format(API_VERSION)TOKEN = “YOUR_BOT_TOKEN”
HEADER = {“Authorization”: “Bot {}”.format(TOKEN)}APP_ID = 000000000000000000 # BotのID
GUILD_ID = 111111111111111111 # 対象とするサーバーのID
CHANNEL_ID = 222222222222222222 # 対象とするチャンネルのID
“`
—
# [メッセージ送信](ht
FastAPI: SQLAlchemy で MariaDB を使う (その 4)
こちらのプログラムを改造しました。
[FastAPI: SQLAlchemy で MariaDB を使う (その 3)](https://qiita.com/ekzemplaro/items/d0c6321080ee14e2de36)
>API に PUT を追加## プログラム ##
フォルダー構造
“`text
$ tree
.
├── __init__.py
├── crud.py 変更
├── database.py
├── main.py 変更
├── models.py
└── schemas.py 変更
“`“`py:crud.py
from sqlalchemy.orm import Session
import sys
from datetime import datetimefrom . import models, schemas
#
def get_city(db: Session, city_id: str):
return db.query(models.City).filter(models.Ci
Pythonで作るスネークゲーム
## はじめに
今回はPythonで、ヘビ状のオブジェクトにエサを食べさせて成長させる「スネークゲーム」を作ってみたいと思います。前回の記事で取り上げたPing Pongゲームに引き続き、Python初心者向けのゲームの一つです。Youtubeなど、ネットに多く教材がありますので、ぜひ参考にしてみてください。
今回はpygameという、Pythonでゲーム作成をするときに便利なライブラリを使用しています。
今回のソースはこちらの動画に基づいて作成しています。
[“How to build SNAKE in Python!”](https://www.youtube.com/watch?v=9bBgyOkoBQ0)## ゲーム概要と必要なオブジェクト及び処理
そもそもスネークゲームとはどのようなゲームでしょうか。こちらが今回作るスネークゲームの外観です。![スクリーンショット 2022-04-28 8.33.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1676583/5d931adc
asyncio、コルーチン、async/await
# asyncio
>async/await 構文を使い 並行処理の コードを書くためのライブラリです
https://docs.python.org/ja/3/library/asyncio.htmlでは、`async/await`とは?
# async/await
* 非同期で実装する際に使用する
“`sample.py
async def edit():
results = await get()
return results
“`次の様にawaitを使わない場合、
“`sample.py
async def edit():
print(get())
# > RuntimeWarning: coroutine ‘SampleController.get’ was never awaited
“`「コルーチンがawaitされていない」と。
**コルーチンを単に呼び出しただけでは実行出来ず、コルーチンオブジェクトが返るため**コルーチンとは?
# コルーチン
async/await 構文で宣言された関数はコルーチンと呼ば
JPXのデータを用いてデータ分析をしていく【データ読み込みからデータの中身理解】(Kaggleコンペ)
みなさんこんにちは。
現在、Pythonを勉強している社会人3年目の転職希望者です。
プログラミングスクールに通い、様々な分析手法を学びました。これからは、更に実践で活躍できるようになる為、自らデータを探し、データの分析のみならず基礎から学んでいこうと考えています。
このブログが様々な人の役に立てれば光栄に思います。さて、本題ですが今回使用するデータセットは下記のとおりです
https://www.kaggle.com/competitions/jpx-tokyo-stock-exchange-prediction
JPXが主催のコンペディションになっています。ここで、JPXとは何か簡単に説明していきます。
日本取引所グループ(JPX)は、世界最大級の証券取引所である東京証券取引所(TSE)と、デリバティブ取引所である大阪取引所(OSE)および東京商品取引所(TOCOM)を運営する持株会社です。
今回はこのコンペディションのデータを用いて、データの読み込みからデータ手法まで幅広く学んでいきたいと思います。
1.データの読み込み
与えられたデータがかなり多いですが、まずは一
boto3を使って、さくらのオブジェクトストレージにファイルをアップしてみる
# はじめに
最近になって、さくらのクラウドを触り始めた初心者(筆者)が四苦八苦しながら
オブジェクトストレージにファイルをアップロードしてみたのが前回の内容。https://qiita.com/nkmr_RL/items/9b15c2eaddb97a830887
上記のアップロードができるようになったら
**「なんかPythonから操作できる気がしてきたわ…」**
と思い立ったので、Pythonから操作してみるのが今回の内容。あと、先に言っておきますが、**AWS公式ライブラリboto3を使った方法**になるので
**さくらインターネットの公式サポート対象外のやり方**です。(多分)だから、1年後には使えなくなっているかもしれない。(バナージ…悲しいね)
# 予想される検索ワード
以下、この記事を求めているであろう方が入力しそうな
(というか実際に私が必死で検索した)検索ワードです。さくらのクラウド, オブジェクトストレージ, アップロード方法, Python, boto3
# 実行環境
– ubuntu 18.04(Dockerで構築)
– Pytho
データフレームのある列をインデックスに設定する df.set_index()
ある列をインデックスに設定したい!
そんな時に、用いるのが`set_index()`です
df = df.set_index(“インデックスに設定したいカラム名”)例えば、3列目くらいに`age`というカラムがあったとします。
年齢ごとにデータをまとめたいとき、一番左の列(インデックス列)にあればとてもデータとして
見やすいですよね。
是非使ってみてください!
FastAPI: SQLAlchemy で MariaDB を使う (その 3)
こちらのプログラムを改造しました。
[FastAPI: SQLAlchemy で MariaDB を使う (その 2)](https://qiita.com/ekzemplaro/items/e4a89757858c4c85e271)
>データベースとテーブルを変更
>API に delete を追加## プログラム ##
フォルダー構造は同じです。“`text
$ tree
.
├── __init__.py
├── crud.py
├── database.py
├── main.py
├── models.py
└── schemas.py
“`“`py:crud.py
from sqlalchemy.orm import Sessionfrom . import models, schemas
#
def get_city(db: Session, city_id: str):
return db.query(models.City).filter(models.City.id == city_id).first()
#
def get_cities(d
FastAPI: SQLAlchemy で MariaDB を使う (その 2)
こちらのプログラムを改造しました。
[FastAPI: SQLAlchemy で MariaDB を使う](https://qiita.com/ekzemplaro/items/9f84596fba2c532d45a9)
変更点
id を string に
age を追加## プログラム ##
フォルダー構造は同じです。
“`text
$ tree
.
├── __init__.py
├── crud.py
├── database.py
├── main.py
├── models.py
└── schemas.py
“`“`py:crud.py
from sqlalchemy.orm import Sessionfrom . import models, schemas
def get_user(db: Session, user_id: str):
return db.query(models.User).filter(models.User.id == user_id).first()def get_user_by_email(db: S
超初心者が適当に選んだC問題を解きまくってみた【Python】
解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!
116 Grand Garden
https://atcoder.jp/contests/abc116/tasks/abc116_c
“`python:practice.py
def judge(hlist):
if len(hlist)==0:
return 0
mini = min(hlist)
idx = hlist.index(mini)
hlist = [h-mini for h in hlist]
return mini + judge(hlist[:idx]) + judge(hlist[idx+1:])n = int(input())
hlist = list(map(int, input().split()))
print(judge(hlist))
“`この問題で必要な考え方は、最初に一番背の低い花の必要な数だけ全体に水を与えて