見出し画像

Python学習: Day 25

2024年3月末までの目標🌕!

- Udemyの100 Days of Codeを完了
- おまけに欲張ってCISSP資格を取得し、Cyber Security分野に転向


私の使ってる学習素材です📚。アンジェラねーさんには足向けて寝れませんッ。

今日のPlaylist

Python
Day 24:Mailing merge challenge

ふと気づいたけど、Interpreterってプログラム実行の手段で、「私たち人間が書いたソースコードを一行ずつ機械語に変換して実行してくれるプログラム」…らしい。そういえば、仕事でCloud 環境をRefreshしたらInterpreterが起動しなくて新たにLoadしたとかってメールがよく入る。あのInterpreterなわけだー!😊😊😊
今頃気づいた!

Filesダウンロードしてパスを作ったら…エラー。あぁ~。このパスってのがいまだによくわからない。もう一回レクチャー聞いてみるか。(#223)

よし、じゃ、今開けてるファイルの中にいて下層のファイルを開けるには、
./Input/Nmaes/invited_names.txt
なわけだ。
上の層のファイルを開けたいときは、../ Invite_names.txtになるのかぁ。わかった⭕️❗️

main.py はInputと同じレベルにあるので、”./"を使ってファイルパスを書く。


あー、やっと名前リストが出力できた。ふー。
with open("./Input/Names/invited_names.txt") as names_file:
    names = names_file.readlines()

readlines( )にすると、
['Aang\n', 'Zuko\n', 'Appa\n', 'Katara\n', 'Sokka\n', 'Momo\n', 'Uncle Iroh\n', 'Toph'] 💕💕 (リストになっていい感じやん)

with open ("./Input/Letters/Starting_letter.txt") as letter_file:
    letter_contents = letter_file.read()
    for name in names:
        stripped_name = name.strip()
        new_letter = letter_contents.replace(PLACEHOLDER, name)
        with open(f" ./Output/ReadyToSend/letter_for_{stripped_name}.txt", mode="w") 
        as completed_letter:
             completed_letter.write(new_letter)

エラーが出てるけど、ファイルはCreateされた。😕
まぁ、良しとするか?

line 11, in <module>with open(f" ./Output/ReadyToSend/letter_for_{stripped_name}.txt", 
mode="w") as completed_letter:^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^FileNotFoundError: [Errno 2] No such file or directory:
 ' ./Output/ReadyToSend/letter_for_Aang.txt'
まぁ、Filesも無事Createdなわけだし、良しとしてDay25に行くか。

Day25 (やっと!)

CSV file
以下のコードでファイルを読み込んでリスト作成。

with open("weather_data.csv") as data_file:
    data = data_file.readlines()
    print(data)
--------------------------------------------
['day,temp,condition\n', 'Monday,12,Sunny\n', 'Tuesday,14,Rain\n', 
'Wednesday,15,Rain\n', 'Thursday,14,Cloudy\n', 'Friday,21,Sunny\n', 
'Saturday,22,Sunny\n', 'Sunday,24,Sunny']

だけど、こうすると同じリストが出来上がる。しかも並んでいるので読みやすい。
Import csv,
data = csv.reader(data_file) <- - ここが大事。

import csv

with open("weather_data.csv") as data_file:
    data = csv.reader(data_file)
    for row in data:
        print(row)
--------------------------------------------
['day', 'temp', 'condition']
['Monday', '12', 'Sunny']
['Tuesday', '14', 'Rain']
['Wednesday', '15', 'Rain']
['Thursday', '14', 'Cloudy']
['Friday', '21', 'Sunny']
['Saturday', '22', 'Sunny']
['Sunday', '24', 'Sunny']

そしてお次は、
🐼pandas (python document library)をインストール中…。
インストール後、次のコードを実行するとあっという間にリストが!奇麗やん。

mport pandas

data = pandas.read_csv("weather_data.csv")
print(data)
--------------------------------------
0     Monday    12     Sunny
1    Tuesday    14      Rain
2  Wednesday    15      Rain
3   Thursday    14    Cloudy
4     Friday    21     Sunny
5   Saturday    22     Sunny
6     Sunday    24     Sunny
print(data["temp"])  にするとなんとまぁ!気温のデータだけが出るぅ。
----------------------------------------
0    12
1    14
2    15
3    14
4    21
5    22
6    24


簡単な少ないコードでカッコイイことやるやん。丸くてもイケてるやん!

DataFrame:はデータの表そのもの
Series:は気候の数字の集まり、とかグループのデータだな。

Series
data_dict = data.to_dict()
print(data_dict)
---------------------------------------------------
{'day': {0: 'Monday', 1: 'Tuesday', 2: 'Wednesday', 3: 'Thursday', 4: 'Friday',
 5: 'Saturday', 6: 'Sunday'}, 
'temp': {0: 12, 1: 14, 2: 15, 3: 14, 4: 21, 5: 22, 6: 24}, 
'condition': {0: 'Sunny', 1: 'Rain', 2: 'Rain', 3: 'Cloudy', 4: 'Sunny', 
5: 'Sunny', 6: 'Sunny'}}

data.to_dict()でデータ毎にまとめてくれる。

あー、ダメェ。雪が降ってきて寝てしまった。また明日...か。

この記事が気に入ったらサポートをしてみませんか?