[PYTHON] Verwenden Sie Gokart, um Pandas-Assoziationen in Ihrer Datenpipeline zu testen.

schreiben

Was ist Gokart?

--OSS entwickelt von M3 und fringe81 --Wraps luigi wurde von Spotify entwickelt, um die Verwendung zu vereinfachen. Insbesondere die Menge des zu schreibenden Codes wird reduziert.

Zielversion

Bestätigung der normalen Beendigung, wenn pd.Dataframe der Eingabe leer ist

class DataTask(gokart.TaskOnKart):
    task_namespace = 'sample'

    def run(self):
        df = pd.DataFrame(dict(user=[1, 2], item=['a', 'b']))
        self.dump(df)


class TaskA(gokart.TaskOnKart):
    task_namespace = 'sample'

    def requires(self):
        return DataTask()

    def run(self):
        df = self.load_data_frame()
        #Wenn df leer ist`KeyError`Tritt ein.
        df['user'] = df['user'].apply(lambda x: f'user_{x}')
        self.dump(df)


if __name__ == '__main__':
    gokart.run()
$ python main.py sample.TaskA --local-scheduler --test-run-pandas --test-run-namespace=sample

--Botschaft

gokart test results:
status=OK; namespace=sample; name=DataTask; id=10f87ddcf3df71d786a023ae5e0bbc98;
status=NG; namespace=sample; name=TaskA; id=44e9690a4d2182a9bed6b6d9730291bd; message=<class 'KeyError'>: user

Überprüfen Sie beim Dumping, ob jede Spalte den erwarteten Typ hat

--Überprüfen Sie, ob sich der Pandas-Typ aufgrund einer unbeabsichtigten Operation geändert hat.

class SamplePandasTypeCheck(gokart.PandasTypeConfig):
    task_namespace = 'sample'

    @classmethod
    def type_dict(cls) -> Dict[str, Any]:
        return {'user': int}


class DataTask(gokart.TaskOnKart):
    task_namespace = 'sample'

    def run(self):
        df = pd.DataFrame(dict(user=[1, 2], item=['a', 'b']))
        self.dump(df)


class TaskA(gokart.TaskOnKart):
    task_namespace = 'sample'

    def requires(self):
        return DataTask()

    def run(self):
        df = self.load_data_frame()
        #Der Benutzertyp wurde von int in str geändert.
        df['user'] = df['user'].apply(lambda x: f'user_{x}')
        self.dump(df)


if __name__ == '__main__':
    gokart.run()
$ python main.py sample.TaskA --local-scheduler

--Botschaft

gokart.pandas_type_config.PandasTypeError: expected type is "<class 'int'>", but "<class 'str'>" is passed in column "user".

...

===== Luigi Execution Summary =====

Scheduled 2 tasks of which:
* 1 ran successfully:
    - 1 sample.DataTask(...)
* 1 failed:
    - 1 sample.TaskA(...)

This progress looks :( because there were failed tasks

===== Luigi Execution Summary =====

Recommended Posts

Verwenden Sie Gokart, um Pandas-Assoziationen in Ihrer Datenpipeline zu testen.
Konvertieren Sie Rasterdaten mithilfe von Pandas in zeilenhaltige (?) Daten
Verwendung von Pandas 2
Wie man Pandas Rolling benutzt
So erhalten Sie einen Überblick über Ihre Daten in Pandas
[Python] Verwendung der Pandas-Serie
Verwendung von Dataiku unter Windows
Verwenden Sie Github-Flavored-Markdown im Pelican Blog
Hinweise zur Verwendung von Pywinauto
Hinweise zur Verwendung von featuretools
Wie benutzt man Homebrew in Debian?
[Einführung in Python] Verwenden wir Pandas
[Einführung in Python] Verwenden wir Pandas
[Einführung in Python] Verwenden wir Pandas
Wenn Sie NumPy, Pandas, Matplotlib, IPython, SciPy unter Windows verwenden möchten
[Python] Zusammenfassung der Verwendung von Pandas
Verwendung der Spark ML-Pipeline
[Python] Extrahiere △△ mit maximalem ○○ mit Pandas
[Pandas] Was ist set_option?
Wie man Mecab, neologd-ipadic auf Colab verwendet
Wenn Sie dasselbe wie zuvor verwenden, können Sie dies visualisieren, indem Sie Japan, China und Südkorea ausschließen, in denen viele Menschen infiziert sind. In diesem Fall lauten die Daten für "2020/02/21" wie folgt. Besonders auffällig sind Südostasien, Europa und Nordamerika. Ich hoffe es konvergiert so schnell wie möglich. .. .. Migrieren Sie Python, Pandas, Python3, Zeitreihendaten und eigene CMS-Daten nach WordPress
Verwendung von Google Test in C-Sprache
Ich möchte Linux auf dem Mac verwenden
So verwenden Sie Google Assistant unter Windows 10
Memorandum über die Verwendung von Gremlin Python
5 Gründe, Linux auf Ihrem Laptop zu installieren.
Versuchen Sie, mit Pandas in ordentliche Daten umzuwandeln
Installieren Sie Python auf xserver, um pip zu verwenden
Verwendung von "deque" für Python-Daten
So testen Sie auf einer von Django authentifizierten Seite
Verwendung von pandas Timestamp und date_range
Bücher über Datenwissenschaft, die 2020 gelesen werden sollen