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

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

ファイル

はじめに

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

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

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

問45 顧客データフレーム(df_customer)の生年月日(birth_day)は日付型でデータを保有している。これをYYYYMMDD形式の文字列に変換し、顧客ID(customer_id)とともに抽出せよ。データは10件を抽出すれば良い。

df_customer)の生年月日(birth_day)は日付型(1981-04-29)となっていますが、これをYYYYMMDD形式文字列(19810429)変換する必要があります。

まず、文字列への変換strftime()を使用しますが、df_customer[‘birth_day’]のデータ型はobject型であるため、そのままではstrftime()を適用することができません

そこで、pd.to_datetime( )を使用して、datetime64型に変換します。

df_tmp = pd.to_datetime(df_customer['birth_day'])

次に、1981-04-29となっているのを、YYYYMMDD形式文字列に変換するため、一括処理dtと、strftime( )を使用します。フォーマットは%Y%m%dです。

df_tmp = df_tmp.dt.strftime('%Y%m%d')

最後に、顧客ID(customer_id)と文字列変換をした生年月日(birth_day)のデータを結合させて10件を抽出すればいいので、pd.concat()を使用します。

pd.concat([df_customer['customer_id'],df_tmp],axis=1).head(10)

問46 顧客データフレーム(df_customer)の申し込み日(application_date)はYYYYMMDD形式の文字列型でデータを保有している。これを日付型に変換し、顧客ID(customer_id)とともに抽出せよ。データは10件を抽出すれば良い。

この問題は、(df_customer)の申し込み日(application_date)の文字列型を日付型変換するというものなので、問45逆の処理になります。

まず、pd.to_datetime( )datetime64型変換します。

df_tmp = pd.to_datetime(df_customer['application_date'],format='%Y%m%d')

これで文字列型から日付型に変換できました

最後に、問45と同じように顧客ID(customer_id)とともに10件を抽出します。

pd.concat([df_customer['customer_id'],df_tmp],axis=1).head(10)

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

df_receipt)の売上日(sales_ymd)の数値型のデータを日付型に変換します。

これは、問46と同じくpd.to_datetime()です。

df_tmp = pd.to_datetime(df_receipt['sales_ymd'],format='%Y%m%d')

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

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

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

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

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

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

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