У меня есть датафрейм с 2 столбцами данных. Оба столбца являются тегами идентификаторов, и каждая строка показывает связь между двумя идентификаторами. Однако в другой строке может быть один и тот же тег ID, который будет указывать на наличие 3-й / 4-й / 5-й ссылки et c. Я хочу показать в одной строке или через номер группы все идентификаторы, которые связаны между собой.
Вот пример ввода: Пример ввода
I хотите создать новый фрейм данных, например: Пример вывода
Итак, a, b, c и d связаны между собой как группа 1.
d , e и f все связаны вместе как группа 2.
Если бы кто-нибудь мог показать мне способ сделать это, я был бы очень признателен.
import pandas as pd
import os
folder = ''
file = ''
input_file = os.path.join(folder, file)
df1 = pd.read_excel(input_file)
df2 = pd.DataFrame()
data = []
n=0 # this becomes the group number
for index, row in df1.iterrows():
if index == 0:
data.append([row["NAME1"], row['NAME2'], n])
n=n+1
continue
for i in data:
if row["NAME1"] == i[0] or row["NAME1"] == i[1] or ["NAME2"] == i[0] or row["NAME2"] == i[1]:
data.append([row["NAME1"], row['NAME2'], i[2]])
else:
data.append([row["NAME1"], row['NAME2'], n])
n=n+1
df3 = pd.DataFrame(data, columns=['NAME1', 'NAME2', 'Link'])
print(df3)
Это было то, куда я попал прежде чем понять, мне нужна помощь. Я попытался создать вложенный l oop, который взял первый ряд ссылок и назначил им номер группы. Если в любых последующих строках один из идентификаторов уже присутствует в списке, он помечает его тем же номером группы. Если в списке нет совпадений, то назначается новый номер группы.