Преобразование 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.
У меня два вопроса сверху.
-
(lambda i: typ.names[i])
Я не могу понять, что именно делает эта лямбда-функция.
- Подобно первому вопросу, зачем преобразовывать
df[column]
нужно?
Как я сказал
print(df[column])
как до, так и после строки
df[column] = df[column].transform(lambda i: typ.names[i])
, Я увидел, что ничего не изменилось.
Спасибо.