Python関連のことを調べてみた2023年02月07日

Python関連のことを調べてみた2023年02月07日

Pandasの基本的な分析操作

# Pandasの基本的な分析操作
個人的に覚えておきたいコード
“`python
#データのソート(昇順)
df.sort_values(‘Weight’).head()

#データのソート(降順)
df.sort_values(‘Weight’, ascending=False).head()

#列の削除
df = df.drop(labels = ‘Origin’ , axis=1)

#データの絞り込み
df[df[‘Origin’] == 3].head()

#データの絞り込み2
df[(df[‘Origin’]==3) & (df[‘Weight’]>=2000)].head()

#要約統計量の確認
df.describe()

#グループ化
df.groupby(‘Origin’).mean()

#クロス集計表
pd.crosstab(df[‘Cylinders’],df[‘Origin’])

#ピボットテーブル
pd.pivot_table(df, values=’MPG’, index=’Model Year’, columns=’Origin’, ag

元記事を表示

数独の問題作成を ChatGPT に依頼してみました

## 概要

今、巷で噂の「ChatGPT」を利用して、数独のPythonプログラムの作成依頼をすればどのような答えが返ってくるか試してみました

### 実行環境

macOS Ventura 13.0
python 3.8.12

### マシンスペック

– プロセッサ : 2.3 GHz 8コア Intel Core i9
– メモリ : 32GB 2667MHz DDR4

### ChatGPTへのログイン

以下のURLにアクセスします。アカウント登録後利用できます。
https://chat.openai.com/auth/login

### ChatGPTへの問い合わせ

“`
数独の問題を作成するPythonプログラムは?
“`

### ChatGPTからの返事

“`
数独の問題を作成するPythonプログラムは様々な方法で作成することができますが、一般的なアルゴリズムには以下のようなものがあります:

数独テンプレートを作成し、そこから必要な数字を適当に消去する。
順番に数字を埋めていくアルゴリズムを作成する。
ランダムな数字を適当な位置に配置し、正解

元記事を表示

Pythonによるグラフ化コードまとめ

# グラフ関係
コード忘れたとき用にメモしてます。
“`python
#横軸の値
x = df[‘Origin’].value_counts().index
#縦軸の値
height = df[‘Origin’].value_counts().values

#図のサイズを規定
plt.figure(figsize=(12,8))

#グラフのスタイル変更
plt.style.use(‘seaborn’)

#棒グラフ
plt.bar(x=columns, height=model.coef_);

#折れ線グラフ
plt.plot(x, y)

#ヒストグラム
plt.hist(df[‘Acceleration’], bins=50)

#ヒストグラム2
sns.distplot(df[‘Acceleration’], kde=False, bins=10)

#ヒストグラムを線で表現したやつ
sns.distplot(df[‘Acceleration’], kde=True, bins=10)

#散布図
plt.scatter(df[‘Weight’], df[‘MPG’])

元記事を表示

PythonでAPIを公開する(DB使用)

## 概要(成果物)
今回はPythonを使って反義語(反対の意味を持つ言葉)を返すAPIを構築しました。
その流れを書いていきたいと思います。

## 主な流れ
まずは、API構築に必要なライブラリをインストールする。
DBはPythonの組み込みで使えるsqlliteを使用したので、インストールの必要はありません。

“`
fastapi==0.89.1
uvicorn==0.20.0
“`

次にDBからデータを取ってくる処理を書く。
(DBの構築についてはおまけに記載)
今回はdetaというFastApiのスポンサーになっているデプロイメントサービスを利用しました。
detaのDocsによるとsqlliteの相性が良いと書いてありましたのでsqlliteで構築をおこないました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/633008/f2144da1-fea0-9a68-0ee1-0c258204c502.png)

わかりやすいように関数にしてファイルを分けました

元記事を表示

【ツール開発】OpenAIのGPT-3によってデータの加工処理や可視処理のコードを自動生成する?コマンドを作成してみた

昨今話題となっている**OpenAI**によって公開された[**ChatGPT**](https://chat.openai.com/)が話題となっておりますが、ソースコードも生成させることができるようです。このモデル(GPT-3 text-davinci-003)を使ってデータの加工処理や可視化の処理など**データに関係する処理を自動生成するコマンド**を作成し公開してみた話です。

# 作成したコマンドのデモ
いい感じで使えるコードを出力してくれます。**是非使ってみてください。**
Google検索でコピペするよりは手間が少ないかと思います。
![dim_generate_from_file_path.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46662/1b639a52-7832-203f-899f-b216955dabac.gif)

今回開発したコマンドは以前Qiitaにも紹介した[**オープンデータパッケージマネージャ dim**](https://github.com/c-3la

元記事を表示

Google Colabのセッション切れを防止

こんにちは。[hatter](https://twitter.com/hatterblog)です。

GoogleColab Proを使い始めましたが、セッション切れ(90分の方)に悩まされていました。
対策方法が見つかったのでメモを残しておきます。

## 対策方法
1. Google Colabを実行させるChromeブラウザでF12を押して、デベロッパーツールを開く
2. Consoleウィンドウで、次のように入力してEnterキーを押す
“`
function ClickConnect(){
console.log(“60sごとに再接続”);
document.querySelector(“colab-connect-button”).click()
}
setInterval(ClickConnect,1000*60);
“`

ひとまずこれで90分の方は解決しました。
しかし、12時間の方は対応できないので工夫が必要そうです。
お読みいただきありがとうございました。

## 参考記事
[Google Colab セッション切れを防止する](https://fla

元記事を表示

JSONに変換可能かどうかをmypyで判定する

オブジェクトがJSONに変換可能かどうかをmypyで判定したくなったことはありませんか?僕はあります。例えば、floatと間違えてnumpy.ndarrayをJSONに変換してエラーになったことがあります。

“`python
>>> a = np.asarray([0])
>>> json.dumps(a)
Traceback (most recent call last):

TypeError: Object of type ndarray is not JSON serializable
“`

こういうエラーは型で防ぎたいですが、mypyでは長らく実現不可能でした。JSONに変換可能かどうかを型で定義しようとすると再帰が出てきてしまうためです。

“`python
JSON = Union[Dict[str, JSON], List[JSON], Tuple[JSON, …], str, int, float, bool, None]
“`

再帰は(一部の例外を除き)mypyでサポートされていませんでした。mypy 0.981までは。

[Mypy 0.981

元記事を表示

データサイエンス100本ノック(構造化データ加工編)ー ヒント集(P-011〜P-020)

# この記事ってなに?
[データサイエンスの100本ノック](https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess)に取り組んだ時、
**「答えを見るのは嫌だ!! でもヒントは欲しい…」** 的なヒトむけに向けた記事!

(ついでに私が取り組んだ時の回答も折り畳みで隠して記載しておくので、
 15分考えてダメなら、確認して次へ進もう)

| ページ内リンク |
|:————-|
| [P-011ヒント](#p-011) |
| [P-012ヒント](#p-012) |
| [P-013ヒント](#p-013) |
| [P-014ヒント](#p-014) |
| [P-015ヒント](#p-015) |
| [P-016ヒント](#p-016) |
| [P-017ヒント](#p-017) |
| [P-018ヒント](#p-018) |
| [P-019ヒント](#p-019) |
| [P-020ヒント](#p-020) |

本記事以外のヒントをお探しの方はこちら

元記事を表示

dockerによる機械学習環境構築(PyTorch編)

# 0.はじめに
この記事は私が機械学習で利用する環境のdocker imageを共有するために書きました。
機械学習をしたいけど環境構築が難しくてできないという方の役に立てば幸いです。

深層学習フレーム
– pytorch

データフレーム操作
– pandas
– polars
– cudf

Dockerfileなどはgithub([kaggle_pytorch_docker](https://github.com/oriki101/kaggle_pytorch_docker))に公開しています。

## 1. Preparation
機械学習用の環境を構築するためにまずdockerをインストールしてください。
dockerを利用できる環境の作り方がわからないという方は[NVIDIA Dockerって今どうなってるの?](https://medium.com/nvidiajapan/nvidia-docker-%E3%81%A3%E3%81%A6%E4%BB%8A%E3%81%A9%E3%81%86%E3%81%AA%E3%81%A3%E3%81%A6%E3%82%8B%E

元記事を表示

kaggleに初チャレンジ

機械学習やプログラミングを始めたての筆者が自分なりに試行錯誤やさまざまな著書などを参考にして自力でkaggleのコンペに挑戦した時のコードをまとめたものです。
初めてブログ記事を書きますので見にくいと思いますがご容赦ください。

“`python
#ライブラリのインポート
import pandas as pd
import numpy as np
“`
“`python
#csvファイルの読み込み
train = pd.read_csv(“train.csv”)
test = pd.read_csv(“test.csv”)
“`
“`python
#学習データの先頭5行を読み出し
train.head()
“`
“`python
#テストデータの先頭5行を読み出し
test.head()
“`

全体のデータ数とshapeも学習の参考になるのかも。と思い下記のコードでshapeを調べました。

“`python
print(train.shape)
print(test.shape)
“`

結果は
学習データ・・・891,12
テストデータ・・・418,11

元記事を表示

Seleniumを用いたTwitterへのログイン及び投稿

# 本稿の趣旨

space-karen.jpg

カレン氏は激怒した。必ず,かのAPIを除かなければならぬと決意した。カレンにはTwitterがわからぬ。カレンは,SpaceXのCEOである。ほらを吹き,ドローンと遊んで暮して来た。けれども金儲けに対しては,人一倍に敏感であった。

# なぜTwitter APIを使わないか

Twitter API利用のためには,Botの製作意図などを書面でTwitter Devへ申請する必要があります。この作業が不透明で,私など過去に申請したところ「価値なし!」と一蹴され,アク禁まで食らって何年も放置されました。このような事例は多数あるらしく,Seleniumを用いてWebブラウザアクセスを装い,Twitterを操作する方法が試されてきました。この度,スペース・カレン氏がT

元記事を表示

【Python】matplotlibを日本語対応にする方法

# ライブラリのインストール
`pip install japanize_matplotlib`

※Anacondaを利用している場合
`conda install -c uehara1414 japanize-matplotlib`

※Jupyter Notebook、Google Colabなどの場合
`!pip install japanize_matplotlib`

# 実行
Google Colabで実行
“`%matplotlib inline
import japanize_matplotlib
import matplotlib.pyplot as plt
import numpy as np

plt.plot([1, 2, 3, 4, 5])
plt.xlabel(‘x軸’)
plt.ylabel(‘y軸’)
plt.title(“簡単なグラフ”)
plt.show()
“`

# 実行結果
日本語が文字化けせずに表示される
![スクリーンショット 2023-02-06 21.53.17.png](https://qiita-image-store.s3

元記事を表示

【自動化】ファイルを種類ごとにフォルダーに振り分ける

# この記事を読んでできるようになること
– **任意のフォルダーを自動的に作成**し、そのフォルダーに**自動的にファイルを割り振る**。

# 使用例
– Word, Excelなど様々な形式のファイルが入っているフォルダーがある。それらを、ファイルの形式ごとの新しいフォルダーを作成し(e.g., word)、任意のフォルダーへファイルを振り分ける。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2344524/02f42598-e8f2-ceae-411d-3c1c520c8ac8.png)

# コード

## モジュールのインポート
“`python
import os
import glob
import shutil
“`

## 作業ディレクトリ内に、フォルダーを作成
フォルダーの名前を指定する際に、そのフォルダーまでのパスを指定することもできます。
例)os.mkdir(‘C:/Users/tokai/Documents/TokaiOnAir/text’)

元記事を表示

特許データのクロス集計について

# はじめに
前回は仮のデータでクロス集計をしてみましたが、今回は実際の特許データを使ってクロス集計をしてみたいと思います。
# データフレームの作成
以前テキストマイニングを行いました特許データを流用してデータフレームを作成しました。
“`python
import pandas as pd
# googleドライブの利用
from google.colab import drive
drive.mount(‘/content/drive’)
# データの前処理
# データの読み込み(google ドライブから)
df_drone_data_1 = pd.read_csv(“/content/drive/MyDrive/pat_data_drone.20181231.csv”, encoding = “shift-jis”)
df_drone_data_2 = pd.read_csv(“/content/drive/MyDrive/pat_data_drone.20190101.csv”, encoding = “shift-jis”)
# データフレームの結合(縦方向)
df_d

元記事を表示

AnacondaでCondaHTTPError: HTTP 000が発生した対処

WSL2上のAnacondaでプロキシも設定していない状態で“`CondaHTTPError“`が発生した。
“`sh
conda create -n test python=3.9
Collecting package metadata (current_repodata.json): failed

CondaHTTPError: HTTP 000 CONNECTION FAILED for url
Elapsed: –

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

If your current network has https://www.anaconda.com blocked, please fil

元記事を表示

ゼロつくの勉強記録その1

# パーセプトロンについて
こんばんは。maiです。何をアウトプットしようかなと考えた時に、今読んでいる本の内容を一部抜粋しつつアウトプットしようと思いました。

かなり気ままで順序もめちゃくちゃかもしれませんが、ゼロつくで学んだ内容を書いていきます。

## パーセプトロンとは
パーセプトロンとは複数の入力に対して1つの信号を出力するものです。すべての信号を出漁するわけではなく、ある程度の数値になって初めて出力します。この「ある程度」の数値のことを**閾値**と言います。

例えば、入力を
$$x_{1},x_{2} \in \mathbb{R}$$
とし,入力に対する重み(重要度みたいなイメージ)を
$$w_{1},w_{2} \in \mathbb{R}$$
とします。さらに、閾値を
$$\theta \in \mathbb{R}$$
ここで、$\mathbb{R}$は実数の集合を表します。

パーセプトロンの基本は、$x_{1},x_{2}$の重み付き和
$$w_{1}x_{1} + x_{2}w_{2}$$
が$\theta$を超えたら1を返し、そうでなければ0を返すようなも

元記事を表示

エンジニアインターン12日目

今日は前回苦戦したDBからurlを引っ張ってくることに成功した。handle_functionを正しく入力したおかげで動くようになった。引っ張ってきたurlを使ってクローリングもできるよつになった。動くようになった時はとても嬉しかった。次のタスクとしてurlのパラメータを変更してなるべく軽い仕組みを作ることだった。先輩エンジニアに説明を聞いたものの実際コーディングしていると全くわからない状態だった。この課題は次に解決することにした。
今日はとても頭を使った。疲れた。でももっと頑張らないとこれの繰り返しだ…がんばろ!

元記事を表示

python 連想配列 for文

連想配列は通常for文で回すとkeyが出力される。

正しい記載はこう。

#keyを出力したい場合。
for key in deictionarlyList.keys():
print(key)

#valueを出力したい場合。
for value in dectionarlyList.values():
print(value)

元記事を表示

ファイル名が重複しないように自前のタイムスタンプをファイル名に入れるための備忘録メモ

プログラムを実行した結果をプログラムに保存させる時に、ファイル名の重複チェックを入れずにそのまま上書き保存してしまっては目も当てられません。。。:scream: :scream_cat: そこでファイル名が重複しないように自前のタイムスタンプを入れる様にしたのですが、毎度書き方を忘れるため、備忘録メモ。

“`python
from datetime import datetime

today = datetime.now()
tstamp = f'{today.year}{today.month:02}{today.day:02}{today.hour:02}{today.minute:02}{today.second:02}’
file_name = f’hogehoge_{tstamp}’
“`

これで`hogehoge_202302061815`という形式で保存できます。これでも重複が発生する場合は、microsecondまで含めると良いでしょう。(筆者の用途ではsecondまでで十分)

元記事を表示

【matlotlib】時系列データの大小比較をやってみる

# はじめに
matplotとpandasを使ったグラフ作成です。
自分が研究でよく使うグラフを纏めました。
よろしければ使ってあげて下さい。

## 使用データ
flows.csvは以下のデータ形式
|date|observed|simulated|
|:-:|:-:|:-:|
| 1999/11/1 | 0.215 | 0.183 |
| 1999/11/2| 0.176 | 0.173 |
| 1999/11/3| 0.126 | 0.157 |

## 時系列グラフ
pandasで読み込んで表示するだけ
### 出力結果
![output2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1974522/6b88d5b1-e2d7-a271-c428-80cbbe5a1ffd.png)

### ソースコード
“`Python
import pandas as pd

path = “flows.csv”
# csvデータの読み込み
data = pd.read_csv(p

元記事を表示

OTHERカテゴリの最新記事