Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

1.はじめに google colab でライブラリのインストールなどを行うとき、場合によっては長々とログを出力することがあります。これはスマートでないですが、ログを出力させないと今度は進捗が全く分からない。では、どうすれば良いか。 2.対策 tqdm.notebook と io.capture_output() を下記のように組み合わせます。処理ブロックがA〜Dの4つだとしたら、各ブロックの終わりに pbar.update(*) で進捗率を記載し、合計100になるようにしておけばOKです。 各ブロックが終わると pbar.update(*) で設定した分プログレスバーが増えますので、大体の進捗が1行で分ります。 from IPython.utils import io import os import subprocess import tqdm.notebook TQDM_BAR_F
Python の構造的パターンマッチング 1 の使い方についてかんたんにまとめました。 構造的パターンマッチングは一見シンプルですがさまざまな使い方ができる非常に強力な機能です。 正しく理解してうまく活用できれば Pythonic なコードを書くのに役立つものと思います。 目次 構造的パターンマッチングとは 構造的パターンマッチングがサポートするパターン 構造的パターンマッチングとは 構造的パターンマッチング( Structual Pattern Matching )は、 Python 3.10 で新たに導入された(される)構文です。 2 つのキーワード match と case を使用します。 単純な値での分岐の他に、データ構造やアトリビュートのパターンでの分岐なども可能となっています。 見た目は他のオブジェクト指向型の言語によくある switch case に似た印象を与えますが、どち
名前解決 プログラム実行時に何かの名前(変数名や関数名など)を発見すると、Pythonはそれを解決するために、3つ(またはそれ以上)のスコープを「ローカルスコープ→グローバルスコープ→ビルトインスコープ」の順にたどっていく。つまり、関数の実行時に名前が見つかると、まずは関数のローカルスコープからその名前を検索する。ローカルスコープにその名前があれば、それ(ローカル変数やパラメーターなど)の値を利用する。見つからなければ、グローバルスコープ→ビルトインスコープという順番で、その名前を検索していき、見つかったところでその値を利用する。最終的に名前が見つからなければ、先ほどの画像にあった「NameError」を発生させる。 以下では、名前を解決する順序についてコード例と共に見ていこう。 ローカルスコープのみ ここでmyfunc関数についてもう一度見てみよう。 def myfunc(): a =
こんにちは、CX事業本部の若槻です。 関数がネストされたPythonコードで、関数の内側で変更(定義)した変数の値を外側から参照したい場合があります。 例えば以下のコードでは、inner()の外側(outer()の内側)でvar = 'Initial Var'とし、inner()の内側でvar = 'New Var'としています。 def outer(): var = 'Initial Var' def inner(): var = 'New Var' return(var) print(inner()) print(var) となり、inner()の内側で行った変更が外側に反映されず、print(inner())とprint(var)の出力結果が異なる結果となりました。これは、varのスコープがinner()およびouter()のそれぞれのローカルスコープであるためです。 今回は、このよ
日付の連番を文字列で必要になったので、Pythonで生成する方法を二つメモしておきます。 一つ目は、 標準ライブラリである datetime を使うものです。 開始日を生成して、必要な日数だけtimedeltaで差分を加算したものをリスト化したら得られます。 生成したリストはdatetime.datetime型なので、strftimeで文字列に変換して完成です。 from datetime import datetime, timedelta # 日付のリスト生成() date_list = [datetime(2020, 1, 25) + timedelta(days=i) for i in range(10)] # 文字列に変換 date_str_list = [d.strftime("%Y-%m-%d") for d in date_list] print(date_str_list
Selenium関連の記事はググったらたくさん出てくるが、seleniumとwebdriverはバージョンの縛りが非常に厳しいらしく、インストールしても全く動かない。 苦戦すること2時間、やっと動かせるようになったので、失敗した時のパターンと成功パターンを書いておきます。これからseleniumでChromeを操作しようとする人の参考になれば幸いです。 失敗パターン pythonを動かす時はGoogle colaboratoryやjupyter notebookを使っていたので、seleniumも同じように動かせるだろうと思っていた。 こんな感じで、seleniumのインストールやimportは特に問題なくできる。 しかしながら、webdriverを動かそうとしたら、エラーが出てしまう。 いろいろと試行錯誤して、以下のような手順を踏んだところ、うまくChromeを立ち上げることができたので
当サイト【スタビジ】の本記事では、SeleniumをPythonで動かしてChromeブラウザ上で行う操作を自動化していきます。非常に簡単なコードを記述するだけで操作できるのでぜひ試してみてください!Seleniumを駆使すれば普段の単純労働が全自動になるかもしれませんよ! こんにちは! 消費財メーカーでデジタルマーケター・データサイエンティストを経験後、現在は独立して働いているウマたん(@statistics1012)です! Pythonを使うと非常に色々なことが出来ちゃいます。 その中でもSeleniumを使ったブラウザの自動化は非常に便利。 普段なんとなーく惰性でやっているルーティンワークはもしかしたらSeleniumを使えばぜーんぶ自動化できてしまうかもしれません。
「send_keys」を実行することで要素にキーボード入力することが出来ます。 element.send_keys(keys.xxx)の形でxxxに特殊キー指定すると、要素に対して特殊キーを入力することができます。element.send_keys(keys.xxx,string)の形で指定された場合は、特殊キーであるxxxが押下された状態で、要素に対して文字(文字列)を入力することができます。 一方、element.send_keys(string,keys.xxx)は要素に対して通常キー入力した後、特殊キー入力しています。具体例としては「検索テキストボックスに文字列入力後にEnterキー入力」などがあげられます。 ◆メソッド ・send_keys(Keys.xxx) ◆使用形態 ・element.send_keys(Keys.xxx,string) または element.send_k
はじめにPythonでグラフを作成したい場合、グラフ描画ライブラリであるmatplotlibを利用するのが定石となっております。 しかしながら、matplotlibでグラフのタイトル、X軸、Y軸を日本語表記で設定した場合、文字化けが発生し結局英語表記で済ませていることが多いのではないでしょうか。 今回はmatplotlibでグラフを描画する際、グラフのタイトル、X軸、Y軸を日本語表記に指定したとしても文字化けが発生しない方法を2つ紹介します。 なお、今回紹介するのはmac、jupyter notebook環境下での設定方法です。ご留意ください。 実行環境 Python 3.6.5 matplotlib 3.3.4 jupyter notebook matplotlibのドキュメントサイト matplotlibで日本語の設定をしない状態でグラフを作成まずは、グラフの各ラベルを英語表記で指定し
matplotlibの設定ファイルを作成し、日本語を使えるようにしよう matplotlibの設定ファイルパスを確認します。 import matplotlib print(matplotlib.get_configdir()) ターミナルを起動して設定ファイルを作るフォルダまで移動します。 matplotlibの設定ファイルを移動したフォルダで作成します。 vi ./matplotlibrc INSERTモード([I])に切り替えて、以下を入力し保存([esc]+:wq)します。 (今回はMacにデフォルトでインストールされている「Hiragino sans」を指定します) font.family : Hiragino sans matplotlibのフォント設定確認 再度、以下を実行してみると作成したmatplotlibrcで指定したフォントになっているはずです。 import mat
はじめに 以前、[Python] Plotlyでぐりぐり動かせるグラフを作るの記事で、インタラクティブなグラフを描画することができるPlotlyというライブラリを紹介しました。ただ、Plotlyの描画に至るまでに唱える呪文をいまいち覚えきれず、毎回どこかからコピペをしており、手軽に使用できないかなと常々思っていました。 そんな状況で、Cufflinksという、Pandasのデータフレームから、Plotlyを用いたグラフを一発で描画するライブラリを見つけたので紹介します。 Cufflinksのインストールと使いかた インストールは、pip install cufflinksで完了です。 描画するには、Cufflinksをインポートしてから、df.plot()と同じように、df.iplot()と打ち込むだけと簡単! import pandas as pd import numpy as np
Pythonで、リスト(配列)から、 重複した要素を削除(一意な要素・ユニークな要素のみを抽出) 重複した要素を抽出 して、新たなリストを生成する方法について説明する。 なお、リストではなくタプルの場合も同様の考え方で実現可能。 リストやタプルが重複した要素を持っているかどうかを判定したい場合、一つのリストではなく複数のリスト間で共通する要素や共通しない要素を抽出したい場合は以下の記事を参照。 関連記事: Pythonでリスト(配列)に重複した要素があるか判定 関連記事: Pythonで複数のリストに共通する・しない要素とその個数を取得 なお、リストは異なる型のデータを格納可能で、厳密には配列とは異なる。配列を扱いたい場合はarray(標準ライブラリ)やNumPyを使う。 関連記事: Pythonのリストと配列とnumpy.ndarrayの違いと使い分け numpy.ndarrayに対する
はじめに loc,ilocなど、行名/列名,行番号/列番号を基に要素抽出は出てくるものの、 列名×行番号による抽出方法が上手く探せなかったため、メモ投稿です。 やりたかったこと 大元のデータフレーム(列名有り,行名無し)から、特定の要素を持つグループに分け、 各データフレームに対して1行ずつ参照して処理をしていく必要があった。 その際、列の指定は出来るが行の指定が思うようにできないため、行番号で処理を試みた。 (reset_indexも考えたが、きっと列名×行番号での指定も出来るはず…) 結論 atとindexを組み合わせ、df.at[df.index[行番号],'列名'] で抽出できる (↓の記事をきちんと読めば良かった...) https://note.nkmk.me/python-pandas-at-iat-loc-iloc/ お試し # 列名のみのデータフレーム作成 df = pd
リスト内のTimedeltaをnp.meanで平均しようとしたのですが、Python int too large to convert to C longと出てしまいます。 リスト内の時間がCのlongの範囲を超えてしまったということなのでしょうが、これをどうにか計算できるようにすることは可能なのでしょうか。 listを間引きすれば計算できる様にはなるのですが、間引きせずに計算できる方法があれば教えていただきたいです。 よろしくお願いします。 リスト(kakuteiList_np) [[0 Timedelta('18 days 00:24:58')] [1 Timedelta('17 days 23:59:23')] [2 Timedelta('0 days 03:23:49')] ... [17202 Timedelta('0 days 19:49:57')] [17203 Timede
正規表現における先読みと後読みは、マッチするかどうか確認は行うけれどマッチした文字列としては取得しないときに利用します。先読みには肯定先読みと否定先読み、後読みには肯定先読みと否定先読み、がそれぞれ用意されています。ここでは Python を使って正規表現で先読みと後読みを使用する方法について解説します。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く