Python3関連のことを調べてみた2020年04月26日

Python3関連のことを調べてみた2020年04月26日

Python初心者が言語処理100本ノックで苦戦を強いられている~pandasの関数たち~

最近、なんかやろうということで言語処理の勉強をし始めました。

そんな中で、[こちら](https://nlp100.github.io/ja/)の「言語処理100本ノック2020」をPythonを使ってやっていましたら、第2章のUnixコマンドが結構難しくて(自分だけかもしれない。。。)苦戦したので、この章で扱った関数だけでも知っておこうということで色々調べてまとめることにしました。

もし自分と同じく、苦戦している人の助けになれば幸いです。

## 環境
Python 3.7.0
pandas 1.0.3

## csv/tsvファイルを読み込む`read_table()`
例えば、以下のようなファイルを読み込もうと思った時は

“`text:text.txt
ジョン M 5441 1881
太郎 M 4664 1881
花子 M 4636 1881
“`

下のようにして読み込むことができる。

“`py:read_table.py
import pandas as pd

df = pd.read_table(‘test.txt’, header=None)
prin

元記事を表示

[python] tkinter コンボボックスの値を連動させる

# 記事の内容
pythonでtkinterを使ったGUIアプリを製作中、comboboxの扱いで少し悩んだのでメモ。
コンボボックスA,Bを2つ作成し、Combobox-Aの値に連動してCombobox-Bの値が変わるようにしたかった。

例えばCombobox-Aには県名、Combobox-Bには市名を選択する際に
Combobox-Aで県名を選択 -> その県に含まれる市名をCombobox-Bで選択可能にする、といった具合。

## 用意するもの
– 県名をキー、市名のリストを値にもつ辞書
– tkinter

## 実装

“`
import tkinter as tk
import tkinter.ttk as ttk

dict = [‘県名1’:[市名1, 市名2, … ], ‘県名2’:[市名1, 市名2, … ], …]


root = tk.Tk()
var_material = tk.StringVar()
combo_A = ttk.Combobox(root, values=list(dict.keys()) , textvari

元記事を表示

Pyinstallerによるpyスクリプトのexe化

# 記事の内容
Pyinstallerを使ってGUIを使うpyスクリプトを実行ファイルにしようとした所、少しハマったのでメモ。

## 環境
– Windows10
– python3.7
– pyinstaller (pip install pyinstallerでインストール)

## 現象
pyinstallerでexeファイルを作成したところ以下のようなエラーを吐いた。

“`
Traceback (most recent call last):
File “site-packages\PyInstaller\loader\rthooks\pyi_rth_pkgres.py”, line 13, in
File “c:\users\username\.virtualenvs\foo_project-uuzswlzx\lib\site-packages\PyInstaller\loader\pyimod03_importers.py”, line 623, in exec_module
exec(bytecode, module.__dict_

元記事を表示

Netmikoを使ってASAコンフィグ変更

#概要
Cisco ASA (ファイアーウォール)のLocal DBにユーザーを登録した時の話。
ユーザー数が多くて、CLIのコマンドをExcelで作ろうかなと思いましたが、せっかくなのでPythonの**Netmiko**モジュール使って登録してみました。

#実行環境
Python 3.8
Cisco ASA 9.8.4

使用するPythonモジュール
・netmiko 3.1.0
・pandas 1.0.3

#フォルダ構成

project/
 ├ input
 │ └ user_list
 ├ output   
 └ asa_conf.py

**input/user_list**
csv形式のファイルでasa_conf.pyからユーザー情報を読み取ります。

内容↓
username1 , password , group
username2 , password , group

※ヘッダーはつけてません^^;

#コーディング

“`
import pandas as pd
import os
import netmiko

cwd = os.path

元記事を表示

【Python入門】Pandas.DataFrameで複数の条件を満たす行を削除する方法

こんにちは。

最近は**Python**にも触れてる僕です。

今は社内の業務効率化で、経理がExcelとCsvを使って手作業で行っている入金消込処理を**Python**を使って自動化を試みています。
※「未だにExcelなの?」のようなツッコミはご遠慮ください。
当初は**VBA**か**C#**を使うかと思いましたが、せっかくならデータ処理が得意との噂の**Python**を使ってみようと思い、はじめて**Python**に触れてみてます。

Excel操作に**openpyxl**、データ処理に**pandas**を使っているのですが、未だに**pandas**には手を焼いており、**C#**なら瞬殺でコードが組める処理でも苦戦したりしています。

そんな苦戦したことをメモ代わりに書き残していきます。

今回のメモはこちら。

##Pandas.DataFrameで複数の条件を満たす行を削除する方法

「そんなん簡単じゃん!」とツッコミが入るかもですが、いろいろ試してたのでメモっておきます。

DataFrameの行を削除する方法を調べると、**drop**と言う関数がありま

元記事を表示

ラズパイタンク製作記 〜ハードウェア編〜

![IMG_20200425_213459.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/b0dbf1df-d262-3b20-f00f-364f6ea4be20.jpeg)
![IMG_20200425_213614.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/1b29fcf8-cf2e-a7c6-f9d7-8ba7d7bf24dd.jpeg)

ラズパイでラジコンを作ったので製作記を書いてみます。
まずはハードウェア編。

##1.材料
|No|品名|型番|価格|備考|
|:—|:—|:–|:–|:–|
|1|Raspberry Pi|モデル3B|5,000円くらい|モデルは何でもいいです|
|2|タミヤ楽しい工作シリーズ ダブルギヤボックス|-|924円|-|
|3|タミヤ楽しい工作シリーズ ユニバーサルプレートセット|-|396円|-|
|4|タミヤ楽しい工作シリーズ

元記事を表示

Pythonで最もシンプルに文章中の漢数字を数字に変換する方法とプログラム

# はじめに
PythonとEelというライブラリーを使ってAIアシスタント([GitHub](https://github.com/Robot-Inventor/ORIZIN-Agent-HTML)からダウンロードできます)を作っていたのですが,漢数字が入ってきたときのために文章中の漢数字を数字に変換するプログラムを作りました。

ネットで調べるといくつか記事が見つかりますが,私が調べた中ではおそらく私が考えたこの方法が一番シンプルでプログラムも短く書けます。

また,解説付きの記事が殆どなかったので,仕組みの考え方とプログラムの解説も付けておきます。

Python 3.8で動作確認しています。f-stringを使っているのでPython 3.6以上である必要があります。それ以前のPython 3の場合はf-stringの部分を修正して使って下さい。

# プログラム
九千九百九十九京九千九百九十九兆九千九百九十九億九千九百九十九万九千九百九十九まで対応しています。「垓」以上は,殆ど聞いた事がないので京までの対応です。

このプログラムは漢数字の書き方が正しいことを前提に作られてい

元記事を表示

混ぜるな危険。distutils.dir_utilとshutil

先日「could not create ‘ファイルパス’: No such file or directory」
なるエラーの原因がよくわからず数時間嵌っておりましたが、原因は無意識にdistutils.dir_utilとshutilまぜこぜにしてファイル操作していたためでした。

## 環境情報

OS: Windows 10
Python: 3.7.7

## 概要
以下で発生します。

1. 「パスA」をツリー構成維持したまま「パスB」としてcopy_tree
<distutils.dir_util.copy_tree(‘パスA’, ‘パスB’)>

2. 「パスB」を「パスC」としてmove
<shutil.move(‘パスB’, ‘パスC’)>

3. 改めて「パスA」をツリー構成維持したまま「パスB」としてcopy_tree
<distutils.dir_util.copy_tree(‘パスA’, ‘パスB’)>

**⇒「could not create ‘ファイルパス’: No such file or directory」発生**

ちなみに「パスA」がファイルを含ま

元記事を表示

猿でも分かるPython入門 (その2)

 さて、前回に引き続き、Python初心者向けの記事です。今回は下の目次通り、Pythonのリストについて扱います。

#目次
1. リストの作成
2. リスト内データ抽出
3. リストの編集・追加・削除
4. リストの動作原理

#1. リストの作成。
 前回は変数や型について学びました。型には、実数を表すfloat、整数を表すint、テキストを表すstr、TrueかFalseを表すbooleanなどがありましたが、今回は新しい型listをご紹介します。
 さて、前回取り上げた変数ですが、基本的には方1つの変数には1つのデータしか入れることができません。前回は製品を輸入した際の金額を計算しましたが、1つの変数に1つのデータしか代入できないとなると、4品目の金額データを入れたいときには以下のように記述することになってしまいます。

“`Python
price1 = 2
price2 = 2.5
price3 = 13
price4 = 1.15
“`
 しかし、基本的に分析を行いたい場合というのは多くのデータがある場合です。4つだから4行で済んでいるものの、もし品目

元記事を表示

Djangoのクラスベースビュー

# はじめに

ここでは、djangoのクラスベースビュー(汎用ビュー)の基本について解説していきます。
アプリケーションディレクトリ下にある`views.py`に書いていきます。
モデルとして`models.py`の`SampleModel`を、フォームとして`forms.py`の`SampleForm`を利用するものとします。

# TemplateView

最もシンプルな形のクラスビューです。
いろいろなページの作成に使えます。

“`python:views.py
from django.views import generic

class SampleTemplate(generic.TemplateView):
template_name = ‘app/app_template.html’
“`

なお、テンプレートとするHTMLファイルを指定する`template_name`は、`アプリ名/アプリ名_view名.html`とすると、クラス定義時に明示しなくてもデフォルトで利用されるようになります。以下で説明する他のビューでも同様です。

# ListV

元記事を表示

Qiitaへの連続投稿数を取得する(Qiita Posting Streak)

## はじめに

この人はどのくらい連続でQiitaに投稿しているのだろう?ということを気軽に知りたいと思いました。

## 作ったもの
Qiita API v2のAPIを、Python 3.6.3で呼び出して整形・出力しています。
質素ですみません。

[aki-nasu/qiita-streak](https://github.com/aki-nasu/qiita-streak)

## 使い方
`qiita_streak.py`を実行すると、入力を要求されますのでユーザー名を入力してください。
私の場合ですと、`aki-nasu`です(`@`は要りません)。

– 実行例
![](https://i.imgur.com/flYU3Xo.png)

`current streak`が、最新の連続投稿数です。
`most streak`が、今までで一番長かった連続投稿数です(longestのほうがよかったか)。

## 解説
非常に簡単にですが、一部解説です。

* 使用したライブラリ
* `requests` : HTTPライブラリ
* `datetime` :

元記事を表示

Python 入門(最速でクラス理解までの道)

#初めに
※前提:あくまでこの記事はTutorialを細かくなるべくわかりやすく説明するものです
**まだ一度もPythonに触れたことがない方へ**
この記事は[chainer Tutorial](https://tutorials.chainer.org/ja/02_Basics_of_Python.html)を参考に書いています。まず**分からなくても一通り読む**ことをお勧めします

##Pythonってどういう言語なの?どういう特徴もってるの?

他にもたくさんC#やRubyなどの言語がありますが、Pythonはその中でも特に優れている点があります

>**①データ解析と機械学習に優れている**
>>データ解析というと聞きなじみがあるようでないように思えますが、例えばApple社のiPhonにはSiriというAIアシスタントが付いています
Siriは**「Hei Siri!」**というと反応してくれます
これにはSiriが受け取った音声が**「Hei Siri!」**なのかを解析する必要がありますね
これを**データ解析**と呼びSiriがPythonでプログラムされてるかは

元記事を表示

ゼロから始めるLeetCode Day2 「1108. Defanging an IP Address」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

基本的にeasyから初めてacceptanceが高い順から解いていこうかと思います。

前回
[ゼロから始めるLeetCode Day1 「1389. Create Target Array in the Given Order」](https://qiita.com/KueharX/items/58d288348a5b39f7898d)

# 問題

[1108. Defanging an IP Address](https:/

元記事を表示

Tkinterでタブを使ったアプリ

# はじめに
Tkinterでタブ付きウィンドウを使った簡単なアプリを作ります。前回の「[TkinterのTextで簡単GUIアプリ](https://qiita.com/TANAKA-V/items/7ad0ccd5d08fc2258d63)」で作った「エデイタ」風アプリにタブ付きウィンドウを導入し複数ファイルの編集を可能にします。タブ付きウィンドウを作るときはtkinter.ttkモジュールのNotebookウィジェットを使います。

# 完成イメージ
タブ付きウィンドウを使った「エディタ」風アプリです。
![tabedit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/94910/61f0c8fa-4820-0a68-6b05-5bd0c487c8ee.png)
# 解説
### インポート
tkinterとtkinter.ttkをインポートします。

“`Python
import tkinter as tk
import tkinter.ttk as ttk
“`
### Notebook

元記事を表示

Windows + Python + PipEnv + Visual Studio Code でPython開発環境

昔、以下の記事を書きましたが、アップデートで状況が変わっているようなので、
内容を更新して、再投稿します。

[Windows + Python 3.6 + PipEnv + Visual Studio Code でPython開発環境](https://qiita.com/youkidkk/items/b6a6e39ee3a109001c75)

# ■ 環境

* Windows 10
* Python version 3.8.2
* PipEnv version 2018.11.26

# ■ Python のインストール

[Python公式サイト](https://www.python.org/)より、ダウンロード。
ここでは [python-3.8.2-amd64.exe](https://www.python.org/ftp/python/3.8.2/python-3.8.2-amd64.exe) を使用しています。

インストーラを実行し、Pythonをインストールします。
注意点は以下です。

* pip のインストールを行うこと(-> 2ページ目 「pip」をチェッ

元記事を表示

【50カウント】Pythonを使ったキー送信 for Windows

# はじめに

1~50 までの数字を Web ブラウザに入力する作業を Python で自動化してみました。

# 環境

Windows の Python3 で作りました。
Anaconda ディストリビューションは必要なライブラリが最初から入ってましたが、Python公式サイトなどからインストールされていて win32com.client が import できない場合は下記コマンドで必要ライブラリをインストールしてください。

“`
> pip install pypiwin32
“`

# スクリプト

“`python:sr50.py
import time
import win32com.client

def main():
wshell = win32com.client.Dispatch(‘WScript.Shell’)
# 起動済みのFirefoxブラウザをアクティブWindowにする
wshell.AppActivate(‘Firefox’)
# テスト用
#shell.AppActivate(‘メモ帳’)

元記事を表示

PDFファイルの画像ファイルへの変換

###はじめに
PDFから画像ファイルへの変換について調べたので、その備忘録として記載します。

###参考
[PythonでPDFを画像ファイル(JPEG、PNG)に変換する方法](https://gammasoft.jp/blog/convert-pdf-to-image-by-python/)

Install の方法
[【Python】PDFと画像の相互変換](https://algorithm.joho.info/programming/python/pdf-image-py/)
[pdf2image github](https://github.com/Belval/pdf2image)

###環境と環境構築
試した環境
Win10 Pro 64bit
Anaconda
Python3.7

IDEとしてVScodeを利用しています。

####モジュールインストール
pdf2imageとpopplerをインストールする必要があります。
condaを使っているならば、できるだけcondaでインストールすることをお勧めします。
[Anaconda仮想環境の作り方(conda

元記事を表示

pipで指定した文字列を含むモジュールを一括削除する方法

pipで同じ名前を含むモジュールを一括で削除したい時に使えます:fist:

例えば以下のようなjupyterを含むモジュールを全部消したい時は

“`shell
$ pip freeze |grep jupyter
jupyter==1.0.0
jupyter-client==6.1.3
jupyter-console==6.1.0
jupyter-core==4.6.3
“`
“`shell
$ pip freeze |grep jupyter | xargs -I @ pip uninstall -y @
“`
でokです!

元記事を表示

Windows + Anaconda3 + Visual Studio Code でPython開発環境

# ■ 環境

* Windows 10
* Anaconda 2020.02

# ■ Anaconda のインストール

[Anaconda公式サイト](https://www.anaconda.com/)より、ダウンロード。
ここでは [Anaconda3-2020.02-Windows-x86_64.exe](https://repo.anaconda.com/archive/Anaconda3-2020.02-Windows-x86_64.exe) を使用しています。

インストーラを実行し、Anaconda をインストールします。
注意点は特にありませんが、ここでは以下の設定としています。

* Install for
→ All Users
* Destination Folder ※Anacondaのインストール先
→ C:\ProgramData\Anaconda3
* Advanced Options
→ いずれもチェックなし

![Anaconda-Install_1.png](https://qiita-image-store.s3.a

元記事を表示

ゼロから始めるLeetCode Day1 「1389. Create Target Array in the Given Order」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

基本的にeasyから初めてacceptanceが高い順から解いていこうかと思います。

# 問題

[1389. Create Target Array in the Given Order](https://leetcode.com/problems/create-target-array-in-the-given-order/)

問題としては、
・返す配列(array)は最初は空。
・nums[i]とindex[i]が与えら

元記事を表示

OTHERカテゴリの最新記事