Python関連のことを調べてみた2020年03月30日

Python関連のことを調べてみた2020年03月30日
目次

【python】表から行・列・値を取得&変更する方法。

#【python】表から行・列・値を取得&変更する方法

PandasのDataFrameで作成した表から
・**指定した要素を抜き出す方法**と
・**指定した要素の値を変更する方法**のまとめ。

**目次**

1. [列の抽出](#1列の抽出)
1. [列名一覧を抽出](#列名一覧を抽出)
2. [列名で抽出](#列名で抽出)
3. [列番号で抽出](#列番号で抽出)
2. [行の抽出](#2行の抽出)
1. [行名一覧の抽出](#行名一覧の抽出)
2. [行名で抽出](#行名で抽出)
3. [行番号で抽出](#行番号で抽出)
3. [要素の抽出](#3要素の抽出)
1. [loc](#3-1-loc)
2. [iloc](#3-2-iloc)
3. [at](#3-3-at)
4. [iat](#3-4-iat)
4. [データの変更(要素を指定して変更)](#4データの変更)
1. [loc](#4-1-loc)
2. [iloc](#4-2-iloc)
3.

元記事を表示

【python】listから表を作成する方法(表作成の基本操作・行列名の変更)

#【python】listから表を作成する方法(表作成の基本操作・行列名の変更)

pythonで表を作成する基本操作について。
わかりやすいよう1次元配列をベースに表を作成し、操作する方法のまとめ。

表の作成にはpandasのDataFrameを使用。

>[公式ぺージ](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html)

**目次**

1. [1列の表](#11列の表)
1. [表の作成](#1-1表の作成)
2. [列名の変更](#1-2列名の変更)
3. [行名の変更](#1-3行名の変更)
4. [行列名を同時に変更](#1-4行列名を同時に変更)
2. [複数列の表](#2複数列の表)
1. [listの状態で結合](#listの状態で結合)
2. [表にしてから結合](#表にしてから結合)
3. [4つの表を結合](#4つの表を結合)

##1.1列の表
1次元の下記listか

元記事を表示

Pythonでのチームアプリ開発に参画するための学習履歴~基礎項目の補足とjupyterLab環境構築~

## 前回の記事

[Pythonでのチームアプリ開発に参画するための学習履歴~paizaラーニングの「Python3入門」を終えて~](https://qiita.com/shitikakei/items/832b3ad636be0f662586)

## 前回の記事の補足

#### スライスという概念

“`python:
word = ‘hello’
print(word[0:2]) #0番目の要素から2番めの要素まで取り出す

## 処理結果
he

“`
いわゆるインデックスで要素の位置を指定したりすることをPythonではスライスというようだ。

もちろんリストにもスライス表記はある

“`Python:

wordlist = [‘apple’,’bike’,’cake’,’drum’,’electric’]
print(wordlist[2:]) # 2番目の要素から最後まで取り出す
print(wordlist[:2]) # 最初から2番めの要素まで取り出す

## 処理結果

[‘cake’, ‘drum’, ‘electric’]
[‘apple’, ‘b

元記事を表示

Pythonで毎日AtCoder #20

### はじめに
[前回](https://qiita.com/taxfree_python/items/82e0f9bb02bd096567d2)
投稿忘れてました。すみません。

### #20
[問題](https://atcoder.jp/contests/abc061/tasks/abc061_b)

**考えたこと**
道の両辺の町をカウントすればいいので、collectionsを使う

“`python
import collections

n, m = map(int,input().split())
road = []
for _ in range(m):
s = list(map(int,input().split()))
road.append(s[0])
road.append(s[1])

c = collections.Counter(road)
for i in range(1,n+1):
print(c[i])
“`
collectionsはlistと違って1から始まることに注意

### まとめ
ねむいので寝ます。

元記事を表示

AtCoder初参加で覚えていたらよかったと思ったコード(次回への反省1)

2020年3月28日。初めてAtCoderに参加してみた。

参加したコンテスト
AtCoder Beginner Contest 160
A~Cの3問を解き、Dで時間切れ。
思ったよりできなくて悔しかったので、
復習もかねて、ぱっとかければよかったと思ったコードをまとめる。

#すぐに書けるようになりたいコード集

##1行の標準入力に複数の数値が入力されるとき
“`python
temp=input()
A=temp.split(” “)
A=[int(i) for i in A]
“`
入力された数値のリストAをとする
![cap1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403057/aca34546-447e-3ea9-3722-234413a0af16.png)

##ループで空のリストに値を追加していく
“`python
N=5
L=list()

for i in range(N):
L.append(i)

print(L)
“`
![cap2.PNG](https

元記事を表示

Python OpenCVで動画をフレーム毎に画像保存

“`python
import cv2
import os

def extractFrames(pathIn, pathOut):
os.mkdir(pathOut)

cap = cv2.VideoCapture(pathIn)
count = 0

while (cap.isOpened()):

ret, frame = cap.read()

if ret == True:
cv2.imwrite(os.path.join(pathOut, “frame_{:06d}.jpg”.format(count)), frame)
count += 1
else:
break

cap.release()
cv2.destroyAllWindows()

def main():
extractFrames(‘video.mp4’, ‘outputdir’)

if __name__==”__m

元記事を表示

自作NeuralNetworkの精度あげる方法試したこと

#NeurlNetworkでXORを学習させたい!
入力、隠れ層、出力層
この3つを単純に作っただけではXORを実現できるときもあれば、層じゃないときもあったので、なんとか精度を高くしようと、試してみたこと書きです。

ちなみに、うまくいかないときの出力は

“`
#入力 [ (0,0) , (0,1) , (1,0) , (1,1) ]
#出力 [0.01… , 0.63… , 0.62… , 0.66…]
#答え [0 , 1 , 1 , 0 ]
“`
っていう感じで、(1,1)を入力したときの値が大きくずれてしまいます。これをなんとかしようっていうもが目標です。

##目次
– 隠れ層のノードを2つから3つに増やす
– 学習するにつれて、学習率を下げる
– 学習させるやつを増やす

###隠れ層のノードを増やす
これは単純な式の追加でできました。
10回程度の試行ですが、あまり変わりませんでした。
もう少し試行回数を増やしたら結果が変わるかもしれません。
ただ、数値の変動の仕方にあまり変化がなかったため

元記事を表示

コロナウイルス情報をリツイートするbot作成

# 成果物
日本の公的機関が発信するコロナウイルス関連ツイートを自動でリツイートするTwitterbot

# 背景と目的
コロナウイルスについて日々不安感が増している状態で自分でなにかできることはないか?と考えました。そこで最近twitterAPIを使用するアプリを作成していて、それを活かして正しいコロナウイルス情報を拡散できるのではと。
しかしながら自身もウイルスの知識を持っていないので何を持って正しい情報か判断できないし、ましてや間違っている情報を拡散して混乱させることは不本意なので避けたい。
その中で思いついたのは公的機関である各自治体、省庁が発信するコロナウイルス情報を使用できると考えました。正確性があること、また、公的機関で住民のために働く人が出している情報をもっと知ってもらいたいこと。
そういった思いから公的機関のコロナウイルス情報のツイートをリツイートするbotを作成しました。

# 主な使用技術
– AWS Lambda
– Serverless Framework
– python
– tweepy

元記事を表示

aws cliをインストールする際、botocoreとs3transferのせいで失敗する人へ

aws cliをインストールする際、botocoreとs3transferのせいで失敗する人へ

 

aws cliのインストール途中のエラー

aws cliをインストールしたら以下のようなログが出た。

bombanira@KyosukesMBP964:~/tmp$ pip3 install awscli --upgrade --user

Collecting awscli
Using cached awscli-1.18.31-py2.py3-none-any.whl (3.0 MB)
Requirement already satisfied, skipping upgrade: PyYAML<5.4,>=3.10; python_version != "3.4" in /Applications/anaconda3/lib/python3.7/site-packages (from

多倍長演算の活用①

# 多倍長演算の活用
Python の多倍長演算を活用して、処理の簡潔化・高速化を行う方法について書きます。

本記事では、整数の各bitをフラグとみてbit演算する処理について、次の記事では整数を要素とする配列の処理について書きます。
後半、一部ネタバレを含むのでご注意ください。

## ナップサック問題

例えば、次のような問題を考えます。

> $N$ 個の荷物があり、 $i$ 番目の荷物の重さは $w_i$ です。これらから重さの合計が $W$ 以下となるようにいくつかの荷物を選ぶとき、重さの最大値を求めよ。

この問題を解くには、順番に荷物を見て、その時点でどの重さにできるかのリストを更新できれば良いです。

### 配列を用いる方法

配列でこれを表す場合、大きさ $W+1$ の配列 $X = [x_0,\ \dots,\ x_{W}]$ を用意して、荷物を前から順に見て、その時点で荷物で重さ $i$ にできるのであれば $X_i = 1$ 、そうでなければ $X_i = 0$ とすることで $O(W * N)$ 回の処理でできます。配列は使いまわせば $1$ 次元で大

PythonでLINEトークの履歴を解析して送信文字数などを数える

#概要
LINEトーク履歴を解析し、各話者の発言文字数、投稿スタンプ数、写真数を数える方法を説明します。

[メモ] ディープラーニングでの汎化性能検証時のtest_splitと交差検証法の違い

Python / ディープラーニング初心者です。
ニューラルネットワーク実装時に調べた汎化性能の検証法について、
以下の通りメモを残します。

## 疑問に感じたこと
- k分割交差検証法( k-fold cross-validation / kCV)という汎化性能の検証方法がある(参考1)
- 学習用のデータをk個に分割し、k-1個を学習用、1個を性能評価用に用いるという学習をk回繰り返す方法
- sklearn.modelselection.traintest_split(TTS)を用いて、手元のデータを学習用データとテスト用データに分けて汎化性能を検証することがあるのをもともと知っていた
- a.基本的にTTSを複数回繰り返したものがkCVという認識で良いか?
- b.TTSよりもkCVのほうがモデルの汎化性を正確に評価できるという認識でよいか?

## 回答
- a.そう思われる。加えて、kCV時にはもれなくすべてのk個分割を検証用に用いることができる。
- b.そのように思われる。
- TTSを1回だけすると、検証用に用いるデータは学習データとして絶対に用い

年賀状をpythonを使って他己分析してみた

#開発の動機
毎年送りあう年賀状…
部屋の整理をしていたら、先輩や後輩からもらった年賀状がたくさん出てきた。
これを何か役立てないかと考えた。

そこで閃いたのが、他人から見た自分を年賀状を通じて可視化できるのではなかろうかと思いついた。
いわゆる他己分析が年賀状を通じてできるのではないだろうかと思った。

考えてみれば、自分が他の人に書くときは、去年のその人の印象やエピソードなんかを交えて書く。
これは他人も同じなのではないかと考えた。

年賀状を形態素解析して、自分に対する印象を抽出できるはず…
それをワードクラウドにして、自分の他人に対する印象を可視化しようと思った。

#作り方

##1 年賀状の文面の打ち込み(データ入力)

まず、分析するデータを集める必要があるので、年賀状の内容をエクセルにまとめる。

![messageImage_1585488373040.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453622/d004b890-2d64-9e4a-eea4-1760f740db1

Pubmedの.xmlデータをpythonで処理する

#はじめに
この記事は、Pubmedで検索で引っかかった文献データ(xml形式)をpythonで読み込む方法についての自分用メモです。

お気付きの点がありましたらご指摘いただけますと幸いです。

#処理したいデータ
一件のデータは以下のような感じです。実際は複数件のデータを処理したいですが、まずは一件ずつ処理できるようにします。

```001.xml


12345678

2020
03
27


Prorate Python編(1)

今日ProgateのPhthon のⅠ〜Ⅲまでをやりました。
感想としては、c++に形は結構似て入るものの、やはり別物であるから少しなれが必要かなと感じました。まだ終わってないのでなんとも言えませんが、明日に残りを終わらせたいと思います。

PythonのTinkerを使ってお絵かき

# 完成イメージ
スクリーンショット 2020-03-29 午後10.19.21.png

# コード

```sample.py
import tkinter as tk

# 黒(black)の点を描画(数字を大きくすると、大きな点になります。)
def myMotion(mouse):
cv.create_oval(mouse.x - 1, mouse.y - 1, mouse.x + 1, mouse.y + 1, fill = "black")

win = tk.Tk()
cv = tk.Canvas(win, width = 600, height = 400)
cv.create_rectangle(0, 0, 600, 400, fill = "white")
cv.pack()

【python】時系列データをプロット

時系列データを解析するとき、目的変数がどのように変化しているかを
時系列で確認するために、グラフとして可視化します。

手順
**①日付カラムをインデックス化**
 `df.set_index('Date')`
**②プロット**
 `df.plot()`
 `plt.xticks(rotation=70) `
**③後の処理のために元に戻す**
 `df = df.reset_index()`

```Python:date.py
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('dataset.csv')
df.head()

""" 出力
patient Last UpDdated
0 5.0 2020-03-22 10:00:00
1 4.0 2020-03-22 11:00:00
2 6.0 2020-03-22 12:00:00
3 10.0 2020-03-23 10:00:00
4 3.0 2020-03-23 11:00:00
"""

Pythonでのファイル・フォルダパス操作

#Pythonでのファイル・フォルダパス操作

メイン環境のversionが2.7なので、ver3.0以降では情報が異なる可能性があります。
ご容赦ください。

##<os.path.exists> フォルダやファイルの存在を調べる
###フォルダが存在するかどうか

```py
import os
folderpath = ("C:\\test_folder\\test1")
print(os.path.exists(folderpath))
# True
```

os.path.existsを利用する事で指定したフォルダが存在しているかどうかを調べる事が出来ます。
結果はboolで返ります。

**フォルダパスを指定する際にはエスケープシーケンス`\`に注意が必要です。**
r を付けて`r"C:\Users\xxx\desktop\xxx"`と表記するか、
もしくは`\`を文字列として認識させるために`\\`を用いて、`"C:\\Users\\xxx\\desktop\\xxx"`と記述する方法があります。

###ファイルが存在するかどうか

```py
import os

サイゼリヤの間違い探しを解く(ヒントになる)プログラムを作ってみた

こんにちは。初投稿です。
先日サイゼリヤに行った際の待ち時間20分ぐらい数人でサイゼリヤの間違い探しをやって、見つけられませんでした...(ムズすぎる...)
ということで、画像処理で解けないかな〜と思い、やってみました。OpenCVのいい勉強にもなりました。

#やりたいこと
OpenCVのライブラリを使って、サイゼリヤが公式で出している画像データ[(https://www.saizeriya.co.jp/entertainment/) ](https://www.saizeriya.co.jp/entertainment/)を加工して間違い探しを自動化したい!!!
実際にやることは、

- 画像を加工する(余白の削除、半分に分割)
- 画像の差分を計算
- 差分情報を元の画像に表示

という感じです。
コードは[GitHub](https://github.com/kurikinton105/SaizeriyaDifference)にあげてみました。

#実行環境
macOS Mojave 10.14.4
Python 3.6.7
OpenCV 3.4.1

#画像を加工する

pythonでLDAPにデータの移動変更削除をする(WriterとReader編)

# はじめに
[前回](https://qiita.com/mink0212/items/e60deb342d48d6cb9cda)と[前々回](https://qiita.com/mink0212/items/03c653dad49d05811a2e)はLDAPの追加と取得を行いました。今回は、削除やデータ移動、名前の変更など他の機能をまとめます。

# 名前の変更
## コネクションのみ使用した名前の変更
cnのみ変更したい場合はConnectionの```modify_dn()```を使用して変更できます。変更前のdnと変更後のcnを指定することでcnのみ変更することができます。以下の例は前々回でまとめたのでConnectionの接続は端折っています。

``` main.py

# 更新前に表示する
obj_cn_name = ObjectDef('inetOrgPerson', conn)
data_reader = Reader(conn, obj_cn_name, 'ou=sample-unit,dc=sample-component,dc=sample-ldap')
p