Python 無料で独習 【超特訓】Pandas20本ノック 01

Python
この記事は約4分で読めます。

今回の講義はPandasの操作に関する問題を出されて
それを実際にコードを書いて解いていくという内容です。

特定のテーマに沿った課題に取り組みながら
スキルを向上させていきます。
前準備として、問題に出てくるデータは下記URLから
ダウンロードしておく必要があります。
https://drive.google.com/drive/folders/1oKCLH1D_KXVLJFutxtP1dvzgWNYtoqVi

Pandas 20本ノック

問題その1 データの読み込み

weather.csv を読み込み、dfで定義してください。

ans

import pandas as pd
df = pd.read_csv('weather.csv')
df

これは結構スラスラできました。
これも今西先生のおかげです!

問題その2 データの中身確認

読み込んだデータdfの先頭3行、末尾10行を表示してください。

df.head(3)

df.tail(10)

これも覚えていたので、スラスラいけました。

問題その3 不要な列、行の削除

先頭行とカラム名(列名)が「〇〇.1」「〇〇.2」となっているものを
削除したDataFrame df を再定義してください。

う~ん、、、、わからない(笑)
回答を聞いてみると、不要なものを削除するを言い換えると
特定の必要なもののみを抽出
という意味になります。
今回の回答はそのやり方でやる様です。

#カラムズを抽出
df.columns
Index(['年月日', '平均気温(℃)', '平均気温(℃).1', '平均気温(℃).2', '最高気温(℃)', '最高気温(℃).1',
       '最高気温(℃).2', '最低気温(℃)', '最低気温(℃).1', '最低気温(℃).2', '降水量の合計(mm)',
       '降水量の合計(mm).1', '降水量の合計(mm).2', '最深積雪(cm)', '最深積雪(cm).1', '最深積雪(cm).2',
       '平均雲量(10分比)', '平均雲量(10分比).1', '平均雲量(10分比).2', '平均蒸気圧(hPa)',
       '平均蒸気圧(hPa).1', '平均蒸気圧(hPa).2', '平均風速(m/s)', '平均風速(m/s).1',
       '平均風速(m/s).2', '日照時間(時間)', '日照時間(時間).1', '日照時間(時間).2'],
      dtype='object')

#リストをそのままコピペ。そこから必要な部分のみ残す。
['年月日',
 '平均気温(℃)',
 '最高気温(℃)',
 '最低気温(℃)',
 '降水量の合計(mm)',
 '最深積雪(cm)',
 '平均雲量(10分比)',
 '平均蒸気圧(hPa)',
 '平均風速(m/s)',
 '日照時間(時間)', 
]
#このリストがそのままカラムの呼び出しになるので、dfを先頭に付ける

df = df[['年月日',
 '平均気温(℃)',
 '最高気温(℃)',
 '最低気温(℃)',
 '降水量の合計(mm)',
 '最深積雪(cm)',
 '平均雲量(10分比)',
 '平均蒸気圧(hPa)',
 '平均風速(m/s)',
 '日照時間(時間)', ]]

df

ここから0行目を削除したいので、範囲を[1:]とすると0行目を省けます。

df = df[['年月日',
 '平均気温(℃)',
 '最高気温(℃)',
 '最低気温(℃)',
 '降水量の合計(mm)',
 '最深積雪(cm)',
 '平均雲量(10分比)',
 '平均蒸気圧(hPa)',
 '平均風速(m/s)',
 '日照時間(時間)', ]][1:]

df

コメント

タイトルとURLをコピーしました