【問48~問51】データサイエンス100本ノック 解説

※アフィリエイト広告を利用しています。

ファイル

はじめに

問48~問51のコードの説明を初心者や初学者でもわかるような方法でまとめました。

データサイエンス100本ノックのはじめ方は、以下のブログ記事を参考にしてください。

>>【Google Colabはじめ方】データサイエンス100本ノックーデータサイエンティスト協会

問48 レシート明細データフレーム(df_receipt)の売上エポック秒(sales_epoch)は数値型のUNIX秒でデータを保有している。これを日付型に変換し、レシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに抽出せよ。データは10件を抽出すれば良い。

UNIX秒とは、UTC時刻における1970年1月1日午前0時0分0秒UNIXエポック)からの経過秒数を計算したものです。

本問は(df_receipt)の売上エポック秒(sales_epoch)の数値型UNIX秒データを日付型変換する必要がありますが、処理の仕方は問47に似ています。

数値型UNIX秒を日付型に変換する方法は、to_datetime()を使用し、引数unit = ‘s’とすることでできます。

df_tmp = pd.to_datetime(df_receipt['sales_epoch'],unit='s')

レシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともにデータを10件抽出します。

pd.concat([df_receipt[['receipt_no','receipt_sub_no']],df_tmp],axis=1).head(10)

問49 レシート明細データフレーム(df_receipt)の売上エポック秒(sales_epoch)を日付型に変換し、「年」だけ取り出してレシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに抽出せよ。データは10件を抽出すれば良い。

問48ほぼ処理は同じで、「年」だけ取り出すdt.yearを使用します。

df_tmp = pd.to_datetime(df_receipt['sales_epoch'],unit='s').dt.year
pd.concat([df_receipt[['receipt_no','receipt_sub_no']],df_tmp],axis=1).head(10)

問50 レシート明細データフレーム(df_receipt)の売上エポック秒(sales_epoch)を日付型に変換し、「月」だけ取り出してレシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに抽出せよ。なお、月は0埋め2桁で取り出すこと。データは10件を抽出すれば良い。

月を「0埋め2桁」で取り出すためにはdt.strftime()を使い、引数’%m’を指定します。

df_tmp = pd.to_datetime(df_receipt['sales_epoch'], unit='s').dt.strftime('%m')
pd.concat([df_receipt[['receipt_no', 'receipt_sub_no']],df_tmp], axis=1).head(10)

問51 レシート明細データフレーム(df_receipt)の売上エポック秒を日付型に変換し、「日」だけ取り出してレシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに抽出せよ。なお、「日」は0埋め2桁で取り出すこと。データは10件を抽出すれば良い。

」だけを0埋め2桁」で取り出すためにはdt.strftime()を使い、引数’%d’を指定します。

df_tmp = pd.to_datetime(df_receipt['sales_epoch'], unit='s').dt.strftime('%d')
pd.concat([df_receipt[['receipt_no', 'receipt_sub_no']],df_tmp], axis=1).head(10)

Pythonのコードやライブラリーについて知りたい場合

Pythonデータ分析よく使われている言語です。

この機会にPythonコードの打ち方・ライブラリーについてもっと知りたいと思った方は、以下のブログ記事をご覧ください。

独学でデータ分析をしている方へ

機械学習データサイエンスデータ分析独学で学ぶには、どうしたらよいかをまとめてみましたので、興味がある方はこちらのブログ記事をご覧ください。