Генерация уникальных идентификаторов для каждой строки DataFrame: изучено несколько методов

В задачах анализа и манипулирования данными часто необходимо назначить уникальные идентификаторы каждой строке DataFrame. Одним из популярных методов создания таких идентификаторов является использование универсальных уникальных идентификаторов (UUID). В этой статье блога мы рассмотрим несколько методов создания UUID для каждой строки DataFrame с использованием Python и Pandas. Давайте погрузимся!

Метод 1: использование модуля uuid
Модуль uuid в Python предоставляет возможность генерировать UUID. Мы можем использовать этот модуль в сочетании с методом apply в Pandas для создания UUID для каждой строки.

import pandas as pd
import uuid
# Create a sample DataFrame
df = pd.DataFrame({'Name': ['John', 'Alice', 'Bob']})
# Generate UUIDs per row using apply
df['UUID'] = df.apply(lambda row: uuid.uuid4(), axis=1)
# Print the DataFrame
print(df)

Метод 2: использование столбца UUID в качестве индекса.
Другой подход — назначить UUID в качестве индекса DataFrame. Этого можно добиться, создав новый столбец с UUID и затем установив его в качестве индекса.

import pandas as pd
import uuid
# Create a sample DataFrame
df = pd.DataFrame({'Name': ['John', 'Alice', 'Bob']})
# Generate UUIDs per row
df['UUID'] = [uuid.uuid4() for _ in range(len(df))]
# Set the UUID column as the index
df.set_index('UUID', inplace=True)
# Print the DataFrame
print(df)

Метод 3: использование встроенной функции Pandas
Pandas предоставляет встроенную функцию под названием pandas.util.hash_pandas_object, которую можно использовать для генерации уникальных идентификаторов на основе содержимого DataFrame.

import pandas as pd
from pandas.util import hash_pandas_object
# Create a sample DataFrame
df = pd.DataFrame({'Name': ['John', 'Alice', 'Bob']})
# Generate UUIDs per row using the hash function
df['UUID'] = hash_pandas_object(df).astype(str)
# Print the DataFrame
print(df)

Метод 4. Использование комбинации индекса строки и отметки времени.
Если вам нужен более простой подход без использования внешних библиотек, вы можете использовать комбинацию индекса строки и текущей отметки времени для создания уникальных идентификаторов.

import pandas as pd
import time
# Create a sample DataFrame
df = pd.DataFrame({'Name': ['John', 'Alice', 'Bob']})
# Generate UUIDs per row using row index and timestamp
df['UUID'] = df.index.astype(str) + '_' + str(int(time.time()))
# Print the DataFrame
print(df)

В этой статье мы рассмотрели несколько методов создания уникальных идентификаторов (UUID) для каждой строки DataFrame в Python с использованием Pandas. Мы обсудили использование модуля uuid, использование столбца UUID в качестве индекса, использование встроенной функции Pandas hash_pandas_objectи комбинацию индекса строки и метки времени. В зависимости от вашего конкретного варианта использования и предпочтений вы можете выбрать метод, который лучше всего соответствует вашим потребностям.

Не забудьте импортировать необходимые библиотеки, адаптировать код к структуре DataFrame и легко создавать уникальные идентификаторы!

Ссылки: