Pythonの総復習➂

Pythonの総復習

ここからはPYhtonの総復習をしていきたいと思います。 総復習といっても、私が購入したこの本からとなります。



この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが2,400円程ならコスパよく、買っておいてよかったと満足してます。


詳しい解説や実装されたものについては、割愛させていただきます。それぞれの解説や実行結果についてはリンクを貼っておきますので、参考してみてください。

リンク先のサイトにて一つ一つ学んだ後、一気にざっと復習するときでもこちらのページを活用してみてください。

やはり、一度だけ本で学んで終わりでなく、二度、三度と繰り返し自分なりにアレンジしていけば学びも深化していくと思います。

HTMLファイルを読み込むには?

自身がHTMLで作った簡単なページを読み込みます。

import requests

url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”
response = requests.get(url)
response.encoding = response.apparent_encoding
print(response.text)

詳しくはこちらをご参照ください。


テキストファイルに書き込むには?➀

import requests
url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”
response = requests.get(url)
response.encoding = response.apparent_encoding
filename = “download.txt”
f = open(filename, mode=”w”)

f.write(response.text)
f.close()

詳しくはこちらをご参照ください。

テキストファイルに書き込むには?➁

import requests

url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”

response = requests.get(url)

response.encoding = response.apparent_encoding

filename = “download.txt”
with open(filename, mode=”w”) as f:
    f.write(response.text)

詳しくはこちらをご参照ください。

HTMLを解析して必要なデータを取り出すには?

import requests
from bs4 import BeautifulSoup

url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”

html = requests.get(url)

soup = BeautifulSoup(html.content, “html.parser”)

print(soup)

詳しくはこちらをご参照ください。

指定したタグの要素を1つ見つけて取り出すには?

import requests
from bs4 import BeautifulSoup

url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”

html = requests.get(url)

soup = BeautifulSoup(html.content, “html.parser”)

print(soup.find(“title”))
print(soup.find(“h2”))
print(soup.find(“li”))

詳しくはこちらをご参照ください。

タグ付きでなく、文字列を取り出すには?

import requests
from bs4 import BeautifulSoup

url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”

html = requests.get(url)

soup = BeautifulSoup(html.content, “html.parser”)

print(soup.find(“title”).text)
print(soup.find(“h2”).text)
print(soup.find(“li”).text)

詳しくはこちらをご参照ください。

すべての要素を探し取り出すには?

import requests
from bs4 import BeautifulSoup

url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”

html = requests.get(url)

soup = BeautifulSoup(html.content, “html.parser”)

for element in soup.find_all(“li”):
    print(element.text)

詳しくはこちらをご参照ください。

idやclassで検索範囲を絞り込むには?

import requests
from bs4 import BeautifulSoup

url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”

html = requests.get(url)

soup = BeautifulSoup(html.content, “html.parser”)

chap2 = soup.find(id=”chapter2″)
print(chap2)

詳しくはこちらをご参照ください。

idで検索し、その中のすべてのliタグを検索して表示するには?

import requests
from bs4 import BeautifulSoup

url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”

html = requests.get(url)

soup = BeautifulSoup(html.content, “html.parser”)

chap2 = soup.find(id=”chapter2″)
for element in chap2.find_all(“li”):
    print(element.text)
詳しくはこちらをご参照ください。

ヤフーから最新ニュース記事を取得するには?

import requests
from bs4 import BeautifulSoup

url = “https://www.yahoo.co.jp/”

html = requests.get(url)

soup = BeautifulSoup(html.content, “html.parser”)

topic = soup.find(id=”tabpanelTopics1″)
for element in topic.find_all(“a”):
    print(element.text)
詳しくはこちらをご参照ください。

リンク一覧をファイルに書き出すには?

import requests
from bs4 import BeautifulSoup

url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”

html = requests.get(url)
soup = BeautifulSoup(html.content, “html.parser”)

for element in soup.find_all(“a”):
    print(element.text)
    load_url = element.get(“href”)
    print(load_url)
詳しくはこちらをご参照ください。

すべてのリンクタグのhref属性を絶対URLで表示するには?

import requests
from bs4 import BeautifulSoup
import urllib

url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”
html = requests.get(url)
soup = BeautifulSoup(html.content, “html.parser”)

for element in soup.find_all(“a”):
    print(element.text)
    load_url = element.get(“href”)
    link_url = urllib.parse.urljoin(url,load_url)
    print(link_url)
詳しくはこちらをご参照ください。

前項の取得したリンクを改行コードを入れてファイルに書き込むには?

import requests
from bs4 import BeautifulSoup
import urllib

url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”
html = requests.get(url)
soup = BeautifulSoup(html.content, “html.parser”)

filename = “linklist.txt”
with open(filename, “w”) as f:
    for element in soup.find_all(“a”):
         load_url = element.get(“href”)
         link_url = urllib.parse.urljoin(url,load_url)
         f.write(element.text+”\n”)
         f.write(link_url+”\n”)
         f.write(“\n”)
詳しくはこちらをご参照ください。

画像ファイルを1枚だけダウンロードするには?

import requests

image_url = “https://www.roadtoupload.com/学びファイル/python2年生/IMG_20201024_160706.jpg”
imgdata = requests.get(image_url)

filename = image_url.split(“/”)[-1]

with open(filename, mode=”wb”) as f:
    f.write(imgdata.content)
詳しくはこちらをご参照ください。

ダウンロード用のフォルダを作って保存するには?

import requests
from pathlib import Path

out_folder = Path(“download”)
out_folder.mkdir(exist_ok=True)


image_url = “https://www.roadtoupload.com/学びファイル/python2年生/IMG_20201024_160706.jpg”
imgdata = requests.get(image_url)

filename = image_url.split(“/”)[-1]
out_path = out_folder.joinpath(filename)

with open(out_path, mode=”wb”) as f:
    f.write(imgdata.content)
詳しくはこちらをご参照ください。

すべてのimgタグの画像ファイルURLを取得し表示するには?

import requests
from bs4 import BeautifulSoup
import urllib

load_url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”
html = requests.get(load_url)
soup = BeautifulSoup(html.content, “html.parser”)

for element in soup.find_all(“img”):
    src = element.get(“src”)

    image_url = urllib.parse.urljoin(load_url,src)
    filename = image_url.split(“/”)[-1]
    print(image_url, “>>”, filename)
詳しくはこちらをご参照ください。

timeを使ってアクセスしすぎて相手のサーバーに迷惑をかけないようにするには?

import requests
from bs4 import BeautifulSoup
from pathlib import Path
import urllib
import time

load_url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample3.html”
html = requests.get(load_url)
soup = BeautifulSoup(html.content, “html.parser”)

out_folder = Path(“allimg”) out_folder.mkdir(exist_ok=True)
for element in soup.find_all(“img”):
    src = element.get(“src”)

    image_url = urllib.parse.urljoin(load_url,src)
    imgdata = requests.get(image_url)

    filename = image_url.split(“/”)[-1]
    out_path = out_folder.joinpath(filename)

    with open(out_path, mode=”wb”) as f:
        f.write(imgdata.content)

    time.sleep(2)
詳しくはこちらをご参照ください。

CSVファイルを読み込むには?

import pandas as pd
df = pd.read_csv(“test.csv”)
print(df)
詳しくはこちらをご参照ください。

データの件数や項目、インデックスを調べるには?

import pandas as pd
df = pd.read_csv(“test.csv”)

print(“データの件数=”, len(df))
print(“項目名 =”, df.columns.values)
print(“インデックス”, df.index.values)
詳しくはこちらをご参照ください。

列データを表示するには?

import pandas as pd
df = pd.read_csv(“test.csv”)

print(“社会の列データ\n”, df[“社会”])
print(“国語と社会の列データ\n”,df[[“国語”,”社会”]])
詳しくはこちらをご参照ください。

行データを表示するには?

import pandas as pd
df = pd.read_csv(“test.csv”)

print(“A太のデータ\n”, df.loc[0])

print(“A太とF菜のデータ\n”,df.loc[[0,5]])

print(“E美の英語データ\n”,df.loc[4][“英語”])
詳しくはこちらをご参照ください。

列データや行データを追加するには?

import pandas as pd

df = pd.read_csv(“test.csv”)
# 1列のデータを追加
df[“美術”] = [68, 73, 82, 77, 94, 96]
print(“列データ(美術)を追加\n”,df)

# 1行データを追加
df.loc[6] = [“G子”, 90, 92, 94, 96, 92, 98]
print(“行データ(G子)を追加\n”,df)
詳しくはこちらをご参照ください。

列データや行データを削除するには?

import pandas as pd

df = pd.read_csv(“test.csv”)
print(“[名前]の列を削除\n”, df.drop(“名前”,axis=1))

print(“インデックス3の行を削除”, df.drop(3, axis=0))
詳しくはこちらをご参照ください。

必要な情報を抽出するには?

import pandas as pd

df = pd.read_csv(“test.csv”)
data_a = df[df[“国語”] >=80]
print(“国語が80点以上\n”, data_a)

data_b = df[df[“数学”] < 75]
print(“数学が75点未満\n”, data_b)
詳しくはこちらをご参照ください。

データを集計するには?

import pandas as pd

df = pd.read_csv(“test.csv”)

print(“英語の最高点は”, df[“英語”].max())
print(“英語の最低点は”, df[“英語”].min())
print(“英語の平均点は”, df[“英語”].mean())
print(“英語の中央値は”, df[“英語”].median())
print(“英語の合計点は”, df[“英語”].sum())
詳しくはこちらをご参照ください。

データを並べ替えるには?

import pandas as pd

df = pd.read_csv(“test.csv”)
english_a = df.sort_values(“英語”, ascending=False)
print(“英語の点数が高い順で並べ替え\n”, english_a, “\n”)

english_b = df.sort_values(“英語”)
print(“英語の点数が低い順で並べ替え\n”, english_b)
詳しくはこちらをご参照ください。

行と列を入れ替えるには?

import pandas as pd

df = pd.read_csv(“test.csv”)

print(“行と列を入れ替える\n”, df.T)
詳しくはこちらをご参照ください。

CSVファイルに出力するには?

import pandas as pd

df = pd.read_csv(“test.csv”)

#点数が高い順,
kokugo = df.sort_values(“国語”, ascending=False)

#インデックスを削除 kokugo.to_csv(“export1.csv”, index=False)
詳しくはこちらをご参照ください。

グラフで表示するには

import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib

df = pd.read_csv(“test.csv”)

df.plot()
plt.show()

詳しくはこちらをご参照ください。

棒グラフにする。下の目盛りを名前にする。凡例の位置を指定する。

前項での読み込みだけでは、➀折れ線グラフより棒グラフが良いのでは?➁下の目盛りが0~5とは誰の点数なのか?➂凡例の位置が微妙です。

import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib

#名前の列をインデックスで読み込む
df = pd.read_csv(“test.csv”, index_col=0)

df.plot.bar()
plt.legend(loc=”lower right”)
plt.show()
詳しくはこちらをご参照ください。

個別のデータをグラフにするには?

import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib

df = pd.read_csv(“test.csv”, index_col=0)

df[“社会”].plot.bar(),
plt.legend(loc=”lower left”)
plt.show()
詳しくはこちらをご参照ください。

円グラフを作るには?

import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib

df = pd.read_csv(“test.csv”, index_col=0)
df.loc[“A太”].plot.pie(labeldistance=0.6)
plt.legend(loc=”lower left”)
plt.show()
詳しくはこちらをご参照ください。

グラフに色をつけるには?

import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib

df = pd.read_csv(“test.csv”, index_col=0)

colorlist = [“red”,”blue”,”orange”,”black”,”tomato”,”skyblue”]
df.plot.bar(color = colorlist)

plt.legend(loc=”lower left”)
plt.show()
詳しくはこちらをご参照ください。

グラフを画像ファイル出力するには?

import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib

df = pd.read_csv(“test.csv”, index_col=0)
colorlist = [“red”,”blue”,”orange”,”black”,”tomato”,”skyblue”]
df.plot.bar(color = colorlist)
plt.legend(loc=”lower left”)
plt.savefig(“graph.png”)
詳しくはこちらをご参照ください。

Excelファイルに出力するには?

import pandas as pd import openpyxl df = pd.read_csv(“test.csv”) english = df.sort_values(“英語”, ascending=False) english.to_excel(“en.xlsx”)
詳しくはこちらをご参照ください。

Excelファイルに出力し、インデックスを削除し、sheet_nameを変更するには?

import pandas as pd import openpyxl df = pd.read_csv(“test.csv”) english = df.sort_values(“英語”, ascending=False) english.to_excel(“en2.xlsx”, index=False, sheet_name=”英語並べ替え”)
詳しくはこちらをご参照ください。

複数のシートを1つのExcelファイルにまとめ、出力するには?

import pandas as pd
import openpyxl

df = pd.read_csv(“test.csv”)

english = df.sort_values(“英語”, ascending=False)

with pd.ExcelWriter(“csv_to_excel3.xlsx”) as writer:
    df.to_excel(writer, index=False, sheet_name=”元の英語データ”)
    english.to_excel(writer, index=False, sheet_name=”英語並べ替え”)
ExcelWriterのEとWは大文字です 詳しくはこちらをご参照ください。

EXcelファイルを読み込むには?

import pandas as pd
import openpyxl

df = pd.read_excel(“csv_to_excel3.xlsx”)
print(df)
詳しくはこちらをご参照ください。

複数のシートからあるシートだけを読み込むには?

import pandas as pd
import openpyxl

df = pd.read_excel(“csv_to_excel3.xlsx”, sheet_name=”英語並べ替え”)
print(df)
詳しくはこちらをご参照ください。

*尚、ここではバージョン「Python 3.10.1」を使用しています。

わからないことはプロフェッショナルから学ぶのが一番

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。