Python関連のことを調べてみた2022年12月17日

Python関連のことを調べてみた2022年12月17日
目次

df.to_excelで桁数が大きい数値を出力したら値が変わってしまった話

# はじめに

私はデータのラベル付け等のため、DataFrameから一部を切り出して一度`to_excel`にてExcelファイルに出力してデータの手編集を行うことがあります。
その中で、データの値が元のDataFrameから変更されている事があったため、備忘録として残しておきます。

# 事象

16~19桁の数値が格納されたDataFrameを用意します。

“`python
import pandas as pd

df = pd.DataFrame([
1234567890123456,
12345678901234567,
123456789012345678,
1234567890123456789,
])

display(df)
“`

確認のため出力した結果が以下になります。

| | 0 |
|—|—:|
|0 |1234567890123456 |
|1 |12345678901234567 |
|2 |123456789012345678 |
|3 |1234567890123456789 |

このDa

元記事を表示

コンテナ内のPytestをリモートデバッグしよう!

## はじめに
コンテナ内のPytestをリモートデバッグをするには
– PythonもしくはPython関連のFrameworkのDockerfileの作成
– リモートデバッグの設定
– **Python Test Explorer for Visual Studio Code**(VSCodeの拡張機能)のインストール

をする必要があります
今回はDjango Rest Framework内でPytestのデバッグを行います
Dockerでの環境構築したことないよ!という方は下記の記事を参考にしてください

https://qiita.com/shun198/items/f6864ef381ed658b5aba

## Poetry を使用する場合は?
リモートデバッグの設定の記事の後半に記載されていますPoetryのPythonのパスの指定方法を参照してください

https://qiita.com/shun198/items/9e4fcb4479385217c323

## 使用する拡張機能について
今回はテストをGUIで確認・実行できる拡張機能である
`Python T

元記事を表示

Pythonエンジニアのための「計算機プログラムの構造と解釈」環境

この記事は[セーフィー株式会社 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/safie) の12月18日の記事です!

私は[セーフィー株式会社](https://safie.co.jp/)で普段はクラウドカメラ向けの画像認識の開発を行っているエンジニアです。

この記事では普段の業務から離れて、コンピュータサイエンスの分野では古典的名著と言われている[「計算機プログラムの構造と解釈」](https://amzn.asia/d/1xDx9W5)(以下SICP)の学習を行うためのScheme環境としての[Calysto Scheme](https://github.com/Calysto/calysto_scheme)について紹介したいと思います。

![sicp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/157307/50856f63-5755-710e-18d7-5da8b3dcae40.png)

# Calysto

元記事を表示

python DataFrame columns

“`py
for col in df.columns:
print(col)
“`

元記事を表示

Databricks にて CAST できない場合にゼロに置換する Python関数の作成方法

## 概要

Databricks にて CAST できない場合にゼロに置換する Python関数を共有します。
“`python
from pyspark.sql.functions import expr

def replace_col_value_to_zero_when_cast_error(
tgt_df,
tgt_col_info,
value_after_replacement = “‘0′”,
):
for tgt_col, tgt_data_type in tgt_col_info.items():
case_state = f”””
CASE WHEN ISNULL(TRY_CAST({tgt_col} AS {tgt_data_type})) is false
THEN {tgt_col}
ELSE {value_after_replacement}
END
“””
tgt_df = tgt_df.w

元記事を表示

最近OpenCVを使った画像処理を嗜んでいる話

本記事は[eeic(東京大学工学部電気電子・電子情報工学科)| Advent Calendar 2022](https://qiita.com/advent-calendar/2022/eeic)の17日目の記事として書かれたものです。

## はじめに
時の流れは早いものでもう学部4年の秋学期、必要な単位も取り終わってあとは卒論を出せば卒業*1*2という季節になりました。
・・・とは言いつつ、せっかくなので私は今学期もいくつか授業を取っています。今回は、そのうちの一つの「OpenCVを用いたプログラミングを通してディジタル画像処理の基礎を学ぶ授業*3」で学んだ内容のうち、面白いと思ったものをいくつかをピックアップして、備忘録的にまとめておこうと思います。

※使用言語はPythonです。

## 目次
[はじめに](##-はじめに)
[1. ヒストグラムマッチング](##1-ヒストグラムマッチング)
[2. エンボス](##2-エンボス)
[3. フィルタ処理](##3-フィルタ処理)
[まとめ](##-まとめ)

元記事を表示

Selenium でループを書いたときの stale element reference: element is not attached to the page document エラー回避備忘録

## 概要

久しぶりにSelenium を使ったら、
ループ処理のところで

“`bash
stale element reference: element is not attached to the page document
“`

といういうエラーに遭遇し、少しだけ詰まったので備忘録として残しておきます。

## 問題となったコード

汚いコードなのは許してください。。

“`test.py

divEl = driver.find_element_by_class_name(“htBlock-adjastableTableF_inner”)
tableElem = divEl.find_elements(By.TAG_NAME, “table”)
tbodys = tableElem[0].find_elements(By.TAG_NAME, “tbody”)
trs = tbodys[0].find_elements(By.TAG_NAME, “tr”)

for i in range(len(trs)):
tmp1 = trs[i].find_eleme

元記事を表示

NumpyやPySparkで大量の確率モデルの確率密度関数を積分する

# はじめに
業務で行っていたとある分析で、大量の確率モデルの確率密度関数を積分して確率を求める機会があったので、この記事ではその際に調べたことを、架空の問題設定を通して紹介していこうと思います。

# 問題設定
今回はダミーのデータセットを用いて説明しようと思います。
ECサイトのユーザの毎月の決済回数を集計して、平均と標準偏差を算出したという体で、以下のようにしてNumpyとPandasでダミーデータを作成します。

“`python
rg = np.random.default_rng()

models = []
for i in range(100000):
id = str(i)
usage = rg.uniform(0, 30, 12) # 各ユーザの12か月の利用回数を0~30の一様分布で生成
mean = float(np.mean(usage))
std = float(np.std(usage))
models.append((id, mean, std))

df = pd.DataFrame(models)
“`

元記事を表示

GBFSの利用確率を算出する

私が書く、GBFSアドベントカレンダーの記事もこれで3つ目です。

今回は、GBFSを解析して、自転車がどの程度の確率で借りられるかを算出してみます。

使う技術とその環境は以下の通りです。

* GoogleAppScript
* Python 3.9.13
* folium 0.12.1.post1
* Pythonで地図UIを扱うライブラリ。HeatMapWithTimeを使います

:::note info
本記事では、OpenStreet株式会社(ハローサイクリング) / 公共交通オープンデータ協議会のバイクシェア関連情報(GBFS形式)をCC-BY4.0に従って利用しています。
https://ckan.odpt.org/dataset/c_bikeshare_gbfs-openstreet
:::

# はじめに

まず、GBFSとはなんぞやについては、@kumatira さんの記事に詳しいのでそちらを参照ください。

https://qiita.com/kumatira/items/f9229c21d9f0db3b5ae3

今回の記事は、前回の記事で蓄積したGBF

元記事を表示

AWSにストリーミングデータ収集システムの構築をした話

この記事はアイスタイル [Advent Calendar 2022](https://qiita.com/advent-calendar/2022/istyle)の17日目の記事です。
はじめまして、アイスタイルのデータ分析システム部でデータエンジニアをしている新卒三年目の[shirakih](https://qiita.com/shirakih)です。
普段は、SaaS 型マーケティング支援サービス【[ブランドオフィシャル](https://business.cosme.net/service/brandofficial)】のデータ基盤の開発、保守運用に携わっています。

今回は、@grassyさんが9日目の記事で書いていた、データ基盤のクラウド移行に関連したストリーミングデータ収集システムをAWSに移行したお話をしようと思います。 構築するにあたってデータの欠損が無い構成にするために実際に行ったことをいくつかご紹介します。
ブランドオフィシャルの詳細やデータ基盤のクラウド移行について気になる方は、@grassyさんの下記記事に詳しく記載されてるので御覧ください〜

ht

元記事を表示

LambdaでS3の最終更新日時を取得する(Python)

# 概要
S3の最終更新日時を取得するLambdaをPythonで書いてみた記事です。

# 前提条件
– S3が用意されていること
– Lambdaに必要なIAM権限が付与されていること

# 環境
– ランタイム:Python3.9
– リージョン:ap-northeast-1

# コード
“`python
import boto3
from datetime import datetime, timedelta, timezone

s3 = boto3.resource(‘s3’)
s3_bucket =
bucket = s3.Bucket(s3_bucket)

def lambda_handler(event, context):
# 指定のフォルダ配下で調べたい場合はprefixを設定
prefix = ‘/’

# オブジェクトの取得
objs = bucket.meta.client.list

元記事を表示

【17日目】コマンド風のやつを再現しよう①【PythonでDiscordBOTを作ろう!】

# コマンド風のやつを再現してみましょう!①
Discordで、BOTを操作する時って、大体プリフィックス部とコマンド部に分かれた文字列を送信しますよね。
例えば、画像にある私のにらBOTのヘルプコマンドであれば、プリフィックスは`n!`、コマンドは`help`、これを合わせて`n!help`という文字を送信します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1107984/42b524df-763e-4992-8cb7-d62dc8e6f7bb.png)

プリフィックスはBOT毎に固定されていて、プリフィックスによって操作するBOTを選びますよね。
今回はこんな機構を**再現**していきます。あくまでも再現フェーズです。

というわけで、色々な方法があるので、少し記事を分けてみましょう。
これを通っていけば、にらBOTの初期段階までは作れると思います…

# 文字列同一判定
さて、前回と前々回で`スライス`を紹介したのは、ここに繋がります。
プリフィックスは最初につけるので

元記事を表示

Pythonista3 で3DCG やろうぜ!SceneKit のプリミティブなもので遊ぶ

この記事は、[Pythonista3 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/pythonista3) の17日目の記事です。

https://qiita.com/advent-calendar/2022/pythonista3

一方的な偏った目線で、Pythonista3 を紹介していきます。

ほぼ毎日iPhone(Pythonista3)で、コーディングをしている者です。よろしくお願いします。

以下、私の2022年12月時点の環境です。

“`sysInfo.log
— SYSTEM INFORMATION —
* Pythonista 3.3 (330025), Default interpreter 3.6.1
* iOS 16.1.1, model iPhone12,1, resolution (portrait) 828.0 x 1792.0 @ 2.0
“`

他の環境(iPad や端末の種類、iOS のバージョン違い)では、意図としない挙動(エラーになる)なる場合もあり

元記事を表示

S3+Athenaで作る低コスト時系列データレイク

今年一年は、大きなネガティブサプライズがたくさん発生して、どんどん仮想通貨市場が冷えていった一年でしたね。こんな厳冬のさなかですが、皆さんは次のバブルに向けて研究開発は順調に進んでいますでしょうか?僕はスプラ3がとても捗っています。

やる気の出ない値動きに流動性の薄さに嫌気がさしている方も多いと思いますが、そんな冬だからこそ値動きに邪魔されずにBUIDLする時間がたくさんあります。今回の記事では、研究開発を始めるにあたっての基礎の基礎、データ収集周りのトピックについてです。データ収集、管理、活用の仕組みってつくるのが非常に面倒ですよね?これらの問題をどのようにして解決してデータレイクを実装しているかについて書いていこうと思います。

この記事を読めば、ほぼS3の保存コストだけという格安で運用できるデータレイクを、誰でも簡単に構築できるようになるはずです。

### 問題提起

データレイクを作るにあったって大きな壁が主に3点あります。

1. 冗長性/可用性を担保して低コストで保存するのはどうすべき?
2. 継続的にデータを更新したいけど、仕組みづくりが面倒
3. データを活用するに

元記事を表示

colmap2nerfの改造

「instantNeRFで遊ぶ Advent Calendar 2022」の17日目です。

今日はinstantNeRFのGUI画面に再生されるモデルの姿勢をあらかじめ調整する方法を検討します。

:::note
業務外の個人的な検討活動です。
:::

:::note alert
警告
環境や入力内容によっては現在使用できている状況が壊れることがあります。
あなたの責任と判断で試してください。私は責任を取りません。
:::

#### テストデータ
sketchfabのNefertiti statueを使用させていただきました。ありがとうございます。

#### colmap2nerf.py
colmap2nerf.pyの中身を確認しました。
COLMAPのimages.txtのカメラの位置と向きのデータがNeRF用に変更されていました。
![17-13.png](https://qiita-image-store.s

元記事を表示

LaLondeデータセットに対し傾向スコア(IPW)をPythonで実装して因果推論

# はじめに
最近(2022年)のデータサイエンス周りでは、因果推論がホットな話題の一つになっています。私は現時点で高度な因果推論を実務で行うことはあまりないのですが、今後施策の効果検証などを高度な統計モデル・機械学習モデルを使って実施する場面がありそうなので勉強してみました。
因果推論でよく使われるデータセットの一つであるLaLondeデータセットを使って、Pythonで実際に因果推論をやってみました。記事が長くなるので、今回は使うデータの説明と傾向スコアを使った逆確率重み付き推定を実施します。
Doubly Robust 推定というちょっと高度な因果推論は別の記事にしたいと思います。

## この記事で想定する読者
この記事では、以下の読者を主なターゲットして書かれてます。
– 因果推論という言葉を聞いたことはある
– 傾向スコア、そのほかの高度な因果推論で手を動かしたことはない
因果推論を全く知らない方、あるいはECounMLやCausalMLをある程度使ったことがある方は対象としていませんので、ご了承ください。

# 就労支援の因果推論 – NSWデータ –

この記事ではデー

元記事を表示

「Streamlit」で機械学習アプリを作成する

# はじめに
Streamlitは、Webアプリケーションを開発するためのライブラリです。
Streamlitを使用すると、Pythonコードを簡単にWebページ上で実行することができます。

この記事では、Streamlitを使って機械学習アプリを作っていきます。

# 準備
1.「コマンドプロンプト」や「ターミナル」で、次のコマンドを実行します。
“`
pip install streamlit
“`
2.Streamlitが正常に動作することを確認します。
“`
streamlit hello
“`
ブラウザ画面が開けば成功です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675876/fd7ef796-2426-3c66-b40c-c471c46ea509.png)

3.アプリケーションのエントリポイントとなるPythonファイルを作成します。例えば、app.pyという名前のファイルを作成します。
“`python:app.py
import streamlit

元記事を表示

ABC281 A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder

ABC281(AtCoder Beginner Contest281) A~D問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。

その他のABC解説、動画などは以下です。

https://qiita.com/sano192/items/54accd04df62242b70f0

更新時はツイッターにて通知します。

# A Dif:6

https://atcoder.jp/contests/abc281/tasks/abc281_a

for文で大きい方から小さい方へ処理を行います。
やり方を知らなければ「python カウントダウン」などで検索してみましょう。

for i in range(最初の数,最後の数-1,-1)
と書くことでiに(最初の数)から1つずつ減らしながら代入して処理できます。
ですのでiを順に出力すればOKです。

入力の受け取り、出力がわからない方は以下の記事を参考にしてください。

https://qiita.com/sano192/items/6361ed72106cb6dd5

元記事を表示

M1グランプリ決勝前日!決勝進出者に関係する芸人の相関図を作ってM1がより楽しめるように予習してみた。

# はじめに
この記事はMYJLab Advent Calender2022の17日目の記事で、私が2日連続担当での投稿になります。
ほんとは昨日の[NotionとGASを使ってタスク管理継続するために足掻いた話](https://qiita.com/ultrasoulso/items/887f9d4613a79742a0f4)を前後編でやろうとしてたんですが、ちょっとやりたいネタがあったので昨日と全く違うものを書いていきます。
昨日の記事は詳細な部分が雑に終わってしまってるので、どこかでちゃんとしたバージョンを出そうと思います。

# 書かれていること
M1決勝が明日ということで予習のために、**芸人さんの人間関係**の相関図を作ってみました。
その芸人さん自体を知らなくても、知ってる芸人さんと何らか関係があったら取っ掛かりやすくなりそうですよね!
具体的には[Google Colaboratory](https://colab.research.google.com/?hl=ja)上でPythonの[pyvis](https://pyvis.readthedocs.io/en/la

元記事を表示

C言語版『ゼロから作るDeep Learning』①

こんにちは。@Rn86222と申します。この記事は、[ISer Advent Calendar 2022](https://adventar.org/calendars/8285) のために書きました。他の記事も面白いのでぜひ見てみてください。

前回の[C言語版『ゼロから作るDeep Learning』⓪](https://qiita.com/Rn86222/items/58017e2e3bf8d4d20794)の続きです。前回はとりあえず`Function`構造体と`Variable`構造体を用いて自動微分を実装し始めたところでした。各計算における逆伝播は手動で行っていましたが、今回はそこも自動化できるようにしていきます。ステージ1ステップ7から始めます。

https://qiita.com/Rn86222/items/58017e2e3bf8d4d20794

なお**掲示するPythonのコード(*.py)はすべて次のGitHubレポジトリで公開されているものの引用である** ことをここに明示します(前回は基本的にPythonのコードとCのコードを並列する形でしたが、[本](

元記事を表示

OTHERカテゴリの最新記事