Скажем, у меня есть панды DataFrame так:Добавить UUID, чтобы панды DF
df = pd.DataFrame({'Name': ['John Doe', 'Jane Smith', 'John Doe', 'Jane Smith','Jack Dawson','John Doe']})
df:
Name
0 John Doe
1 Jane Smith
2 John Doe
3 Jane Smith
4 Jack Dawson
5 John Doe
И я хочу, чтобы добавить столбец с UUID, которые являются такими же, если имя совпадает. Например, указанное DataFrame должно стать:
df:
Name UUID
0 John Doe 6d07cb5f-7faa-4893-9bad-d85d3c192f52
1 Jane Smith a709bd1a-5f98-4d29-81a8-09de6e675b56
2 John Doe 6d07cb5f-7faa-4893-9bad-d85d3c192f52
3 Jane Smith a709bd1a-5f98-4d29-81a8-09de6e675b56
4 Jack Dawson 6a495c95-dd68-4a7c-8109-43c2e32d5d42
5 John Doe 6d07cb5f-7faa-4893-9bad-d85d3c192f52
В UUID должен быть сформирован из функции uuid.uuid4().
Моя нынешняя идея - использовать groupby («Имя»). Cumcount(), чтобы идентифицировать, какие строки имеют одно и то же имя, а какие разные. Затем я создаю словарь с ключом cumcount и значением uuid и использую это, чтобы добавить uuids в DF.
Хотя это сработает, мне интересно, есть ли более эффективный способ сделать это?
прекрасно работает. – unpairestgood