colab: name 'metadata' is not defined

Google Colab (в Synthetic Data Vault) не видит метаданные:

from sdv.single_table import CTGANSynthesizer

synthesizer = CTGANSynthesizer(metadata.csv)

synthesizer.fit(data.csv)
NameError                                 Traceback (most recent call last)
<ipython-input-14-cd8dfb16b726> in <cell line: 3>()
      1 from sdv.single_table import CTGANSynthesizer
      2 
----> 3 synthesizer = CTGANSynthesizer(metadata.csv)
      4 
      5 synthesizer.fit(data.csv)

NameError: name 'metadata' is not defined

Файл metadata.csv. Перезагружал и с другими файлами и отдельно, не помогает.


Ответы (1 шт):

Автор решения: CrazyElf
from sdv.single_table import CTGANSynthesizer

synthesizer = CTGANSynthesizer(metadata.csv)

Я так понимаю, "metadata.csv" - это файл с данными формата csv. Тогда нужно сделать следующее:

  1. Прочитать файл "metadata.csv" в Pandas.DataFrame:
import pandas as pd
my_dataframe = pd.read_csv("metadata.csv")
  1. Создать из датафрейма объект метаданных:
from sdv.metadata import Metadata

metadata = Metadata.detect_from_dataframe(
    data=my_dataframe,
    table_name='hotel_guests')
  1. Наконец-то использовать эти метаданные:
from sdv.single_table import CTGANSynthesizer

synthesizer = CTGANSynthesizer(metadata)

Если я правильно понял документацию.

P.S. Что касается собственно ошибки.

----> 3 synthesizer = CTGANSynthesizer(metadata.csv)

NameError: name 'metadata' is not defined

С точки зрения Питона вы здесь как будто пытаетесь обращаться к полю csv переменной metadata, которая у вас в коде не описана. Поэтому такая ошибка.

→ Ссылка