【Python】100本ノックやってます。p‐45~p-50+Djangoインストール
P-045: 顧客データ(df_customer)の生年月日(birth_day)は日付型でデータを保有している。これをYYYYMMDD形式の文字列に変換し、顧客ID(customer_id)とともに10件表示せよ。
df_customer["birth_day_str"] = df_customer["birth_day"].dt.strftime("%Y%m%d")
zとやってみたところ、
AttributeError: Can only use .dt accessor with datetimelike values
と出る。「ん?」と思って
df_customer.dtypes
とやってみたら
customer_id object
customer_name object
gender_cd int64
gender object
birth_day object
age int64
postal_cd object
address object
application_store_cd object
application_date int64
status_cd object
dtype: object
って出る。「birth_day」日付型じゃないってことだよな?お手本のデータ読み込みなおしてみたけど変わらず。エクセルで開いてみると日付型になってるっぽい気がするけど。
解答例を見ると
pd.to_datetime(df_customer['birth_day']).dt.strftime('%Y%m%d')
って書いてある。
一度日付型にしてから文字列にするってこと?
納得いってない・・・明日Slackで聞いてみよう。
P-046: 顧客データ(df_customer)の申し込み日(application_date)はYYYYMMDD形式の文字列型でデータを保有している。これを日付型に変換し、顧客ID(customer_id)とともに10件表示せよ。
こちらもなんか意味わからん。「application_date」が調べてみるとint型なんですけど。
int型を日付型に単純にしようとしたらうまくいかなかったので以下のサイトを参考にしてみた。
P-047: レシート明細データ(df_receipt)の売上日(sales_ymd)はYYYYMMDD形式の数値型でデータを保有している。これを日付型に変換し、レシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに10件表示せよ。
46でやったことと同じことしてる、、、
P-048: レシート明細データ(df_receipt)の売上エポック秒(sales_epoch)は数値型のUNIX秒でデータを保有している。これを日付型に変換し、レシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに10件表示せよ。
unit="s"入れただけー
P-049: レシート明細データ(df_receipt)の売上エポック秒(sales_epoch)を日付型に変換し、「年」だけ取り出してレシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに10件表示せよ。
P-050: レシート明細データ(df_receipt)の売上エポック秒(sales_epoch)を日付型に変換し、「月」だけ取り出してレシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに10件表示せよ。なお、「月」は0埋め2桁で取り出すこと。
0埋め2桁ってことは文字列ってことだよなーって考えると難しくないかな。
ついに半分ー!!!!
今日は2時間半ぐらいやってたかな。
これやってると交感神経優位になっちゃって全然寝れないんだよな、、、でもやる時間って寝る前しかないし。
市販の睡眠導入剤だとあんまり効果感じなかったから、処方してもらうのもありだよなぁ。
効率よく寝たい。
あと、とりあえずDjangoインストールだけやった。