
- はじめに
- 問45 顧客データフレーム(df_customer)の生年月日(birth_day)は日付型でデータを保有している。これをYYYYMMDD形式の文字列に変換し、顧客ID(customer_id)とともに抽出せよ。データは10件を抽出すれば良い。
- 問46 顧客データフレーム(df_customer)の申し込み日(application_date)はYYYYMMDD形式の文字列型でデータを保有している。これを日付型に変換し、顧客ID(customer_id)とともに抽出せよ。データは10件を抽出すれば良い。
- 問47 レシート明細データフレーム(df_receipt)の売上日(sales_ymd)はYYYYMMDD形式の数値型でデータを保有している。これを日付型に変換し、レシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに抽出せよ。データは10件を抽出すれば良い。
- Pythonのコードやライブラリーについて知りたい場合
- 独学でデータ分析をしている方へ
はじめに
問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のコードの打ち方・ライブラリーについてもっと知りたいと思った方は、以下のブログ記事をご覧ください。
データ分析入門・データサイエンス初心者・初学者向けにデータ分析でよく使うPythonをまとめました。
>>【データ分析初心者】Python構文~if文、format記法とf文字列~
>>【データ分析初心者】Python構文~for文、range関数、zip関数、enumerate関数~
>>【データ分析初心者】Python構文~無名関数lambda式、内包表記、map関数~
>>【データ分析初心者】Pandas~loc[]、iloc[]、スライス、drop()、isin()~
>>【データ分析初心者】Matplotlib、Seabornーscatter、hist、countplot 、barplot
独学でデータ分析をしている方へ
機械学習やデータサイエンス・データ分析を独学で学ぶには、どうしたらよいかをまとめてみましたので、興味がある方はこちらのブログ記事をご覧ください。
