LoginSignup
5

More than 3 years have passed since last update.

posted at

updated at

Organization

「自作Python100本ノック」10日目(63本〜70本目)

「自作Python100本ノック」10日目です。

今日は大学の情報科学のテストが40分近く早く終わった(解けたとは言ってない)ので、昼に記事作成をしています。
前回の最後に言った通り、今回は日付とデータフレームの扱いをざっくりやって行きます。
それで、いよいよ次回から文章題に入るという流れです。

ところで、iOSアプリ開発ができる方を現在割と本気で探しているので、どなたかいましたら連絡をくださると嬉しいです。よろしくお願いします。

さて、
「自作Python100本ノック」とはそもそも何ぞや?
どの程度のレベル感なのか?
どのように進めて行くのか?
など気になる方は詳しくはこちらに整理してありますのでまずはそちらを確認するようお願いします。
それでは始めていきます。

Q63: 現在の日付をtoday.txtというテキストファイルに文字列の形で書き込みなさい

    

q63.py
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から日付を解析し取り出しなさい

   

q64.py
import time
fmt = '%Y-%m-%d'
time.strptime(today_string, fmt)

Q65:ディレクトリの扱いの練習

問題: カレントディレクトリと親ディレクトリのファイルのリストをそれぞれ表示せよ。
    

q65.py
# カレントディレクトリのファイルのリストを作ろう
import os
os.listdir('.')

# 親ディレクトリのファイルのリストを作ろう
os.listdir('..')

Q66:自分の誕生日が何曜日だったか確認

weekday()で簡単に特定できるとは驚きました。
自分は何曜日に生まれたのかという長年の謎がこれで解決されました。
   

q66.py
from datetime import date
my_time = date(1998, 5, 11)

my_time.weekday() #月曜が0、日曜が6

Q67:自分が生まれてから10,000日になるのはいつか確認

忘れないようにします!
    

q67.py
from datetime import timedelta
my_future = my_time + timedelta(days=10000)
my_future

Q68:以下のデータフレームを作成せよ。

スクリーンショット 2018-05-16 13.37.52.png

    
q68.py
df = pd.DataFrame(
{'名前': ['朝倉', '鈴木', '山中', '田中', '山本'],
'年齢': [17, 43, 40, 12, 62],
'性別':['男', '男', '女', '男', '女']})
df

Q69:年齢が35歳よりも下の人だけを表から取り出しなさい

q69.py
df_1 = df[df['年齢'] < 35]
df_1

Q70: 内容の追加

問題:なんか適当に新しい行と新しい列を追加してみましょう
例:新たに「池田」を追加すし、新たに「居住地」と言う   列を追加する

   
   

q70.py
# 行の追加
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:内容の削除

問題:「性別」の列を削除せよ
   

q71.py
# 列を削除(行: axis=0, 列: axis=1)
df_3 = df_2.drop('性別', axis=1)
df_3

Q72: 列名を変更

問題:「名前」を「name」、「年齢」を「age」、「居住地」を「residence」に変更せよ
   

q72.py
df_4.columns = ['name', 'age', 'residence']
df_4

感想

もう開始してから10日も経ったのかと焦っています。
そして、基本問題のネタがなくなったので、いよいよ次回から文章問題を解かないといけないのかあ、っていうかどこから問題あつめてこようか、、とビビっております。。

まあ、とりあえず今回はここまでです。
それでは!

-> 11日目

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
5