Преобразование Pandas DataFrame с помощью набора данных hugginface

      from datasets import ClassLabel, Sequence
import random
import pandas as pd
from IPython.display import display, HTML

def show_random_elements(dataset, num_examples=10):
    assert num_examples <= len(dataset), "Can't pick more elements than there are in the dataset."
    picks = []
    for _ in range(num_examples):
        pick = random.randint(0, len(dataset)-1)
        while pick in picks:
            pick = random.randint(0, len(dataset)-1)
        picks.append(pick)

    df = pd.DataFrame(dataset[picks])
    for column, typ in dataset.features.items():
        if isinstance(typ, ClassLabel):          
            df[column] = df[column].transform(lambda i: typ.names[i])
        elif isinstance(typ, Sequence) and isinstance(typ.feature, ClassLabel):
            df[column] = df[column].transform(lambda x: [typ.feature.names[i] for i in x])
    display(HTML(df.to_html()))

Приведенный выше код - это функция, которая показывает несколько примеров, выбранных случайным образом в наборе данных HuggingFace.

У меня два вопроса сверху.

  1. (lambda i: typ.names[i])

Я не могу понять, что именно делает эта лямбда-функция.

  1. Подобно первому вопросу, зачем преобразовывать df[column] нужно?

Как я сказал print(df[column]) как до, так и после строки df[column] = df[column].transform(lambda i: typ.names[i]), Я увидел, что ничего не изменилось.

Спасибо.

0 ответов

Другие вопросы по тегам