「自作Python100本ノック」10日目です。
今日は大学の情報科学のテストが40分近く早く終わった(解けたとは言ってない)ので、昼に記事作成をしています。
前回の最後に言った通り、今回は日付とデータフレームの扱いをざっくりやって行きます。
それで、いよいよ次回から文章題に入るという流れです。
ところで、iOSアプリ開発ができる方を現在割と本気で探しているので、どなたかいましたら連絡をくださると嬉しいです。よろしくお願いします。
さて、
「自作Python100本ノック」とはそもそも何ぞや?
どの程度のレベル感なのか?
どのように進めて行くのか?
など気になる方は詳しくはこちらに整理してありますのでまずはそちらを確認するようお願いします。
それでは始めていきます。
##Q63: 現在の日付をtoday.txtというテキストファイルに文字列の形で書き込みなさい
from datetime import date
now = date.today()
now_str = now.isoformat() #文字列の形にする
with open("today.txt", "wt") as outfile:
outfile.write(now_str)
now_str
##Q64:today.textから日付を解析し取り出しなさい
import time
fmt = '%Y-%m-%d'
time.strptime(today_string, fmt)
##Q65:ディレクトリの扱いの練習
問題: カレントディレクトリと親ディレクトリのファイルのリストをそれぞれ表示せよ。
# カレントディレクトリのファイルのリストを作ろう
import os
os.listdir('.')
# 親ディレクトリのファイルのリストを作ろう
os.listdir('..')
##Q66:自分の誕生日が何曜日だったか確認
weekday()
で簡単に特定できるとは驚きました。
自分は何曜日に生まれたのかという長年の謎がこれで解決されました。
from datetime import date
my_time = date(1998, 5, 11)
my_time.weekday() #月曜が0、日曜が6
##Q67:自分が生まれてから10,000日になるのはいつか確認
忘れないようにします!
from datetime import timedelta
my_future = my_time + timedelta(days=10000)
my_future
df = pd.DataFrame(
{'名前': ['朝倉', '鈴木', '山中', '田中', '山本'],
'年齢': [17, 43, 40, 12, 62],
'性別':['男', '男', '女', '男', '女']})
df
##Q69:年齢が35歳よりも下の人だけを表から取り出しなさい
df_1 = df[df['年齢'] < 35]
df_1
##Q70: 内容の追加
問題:なんか適当に新しい行と新しい列を追加してみましょう
例:新たに「池田」を追加すし、新たに「居住地」と言う 列を追加する
# 行の追加
row = pd.DataFrame({'名前': ['池田'],
'年齢': [1989],
'性別': '男'})
# 行の追加(行: axis=0, 列: axis=1)
df_2 = pd.concat([df,row], axis=0)
df_2
# indexを変更
# np.agrangeで0〜6の数字が並んだ配列を生成
df_2.index = np.arange(len(df_2))
df_2
# 列の追加
# 新たな列を代入
df_2['居住地'] = ['東京', '大阪', '北海道', '宮城', '富山', '大分']
df_2
##Q71:内容の削除
問題:「性別」の列を削除せよ
# 列を削除(行: axis=0, 列: axis=1)
df_3 = df_2.drop('性別', axis=1)
df_3
##Q72: 列名を変更
問題:「名前」を「name」、「年齢」を「age」、「居住地」を「residence」に変更せよ
df_4.columns = ['name', 'age', 'residence']
df_4
##感想
もう開始してから10日も経ったのかと焦っています。
そして、基本問題のネタがなくなったので、いよいよ次回から文章問題を解かないといけないのかあ、っていうかどこから問題あつめてこようか、、とビビっております。。
まあ、とりあえず今回はここまでです。
それでは!
-> 11日目