始める無料で始める

読み取り専用プロパティ

チャプター2の LoggedDF クラスは、pandas の DataFrame クラスを拡張し、作成時刻のタイムスタンプを保存する created_at 属性を追加して、データがどれくらい古いかを確認できるようにしたものでした。

しかし、そのクラスはあまり実用的ではありませんでした。というのも、DataFrame 作成後に created_at に任意の値を代入できてしまい、属性の意味がなくなっていたからです。そこで、プロパティを使って、この属性を読み取り専用にできます。

チャプター2の LoggedDF クラスはスクリプトペインに用意されています。

この演習はコースの一部です

Python によるオブジェクト指向プログラミング

コースを見る

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

import pandas as pd
from datetime import datetime

# LoggedDF class definition from Chapter 2
class LoggedDF(pd.DataFrame):
    def __init__(self, *args, **kwargs):
        pd.DataFrame.__init__(self, *args, **kwargs)
        self.created_at = datetime.today()

    def to_csv(self, *args, **kwargs):
        temp = self.copy()
        temp["created_at"] = self.created_at
        pd.DataFrame.to_csv(temp, *args, **kwargs)   

# Instantiate a LoggedDF called ldf
ldf = LoggedDF({"col1": [1,2], "col2":[3,4]}) 

# Assign a new value to ldf's created_at attribute and print
____ = ____
print(____)
コードを編集して実行