Код: Выделить всё
dfТеперь мне нужно пометить каждый кортеж (в новом столбце Label) как 1, если он содержит не менее 5 одинаковых символов, и 0 в противном случае.
Я пытаюсь найти способ сделать это, не тратя всю жизнь...
Моя первая наивная попытка (после импорта) Счетчик из коллекций) был
Код: Выделить всё
for j in tqdm(df.index):
cond = max(Counter(df[df.index==j].Tuple.values[0]).values()) >= 5
df.loc[df.index==j, "Label"] = int(cond)
Итак, поскольку кортежи назначены наборам примерно из 100 000 записей, я решил пометить их в каждом отдельном наборе и потом собрать все обратно
Код: Выделить всё
dfs = []
for i in tqdm(df.Set.unique()):
_df = df[df.Set==i].copy(deep=True)
for j in tqdm(_df.index, leave=False):
cond = max(Counter(_df[_df.index==j].Tuple.values[0]).values()) >= 5
_df.loc[_df.index==j, "Label"] = int(cond)
dfs.append(_df)
Есть предложения?
Обновить
Как предложено, я предоставляю образец набора данных
Код: Выделить всё
n = int(1e8)
df = pd.DataFrame({
"Tuple": np.random.randint(100000000, 1000000000, size=n).astype(str),
"Set": np.random.randint(1000, size=n)
})
Подробнее здесь: https://stackoverflow.com/questions/798 ... r-of-ident
Мобильная версия