Устраните дублирование для значения столбца в Dataframe - столбец содержит несколько URL - PullRequest
0 голосов
/ 26 сентября 2019

, поэтому у меня есть столбец с именем "URL" в моем кадре данных Pd1

        URL

row 1 : url1,url1,url2
row 2 : url2,url2,url3

:

        URL
row 1 : url1,url2
row 2 : url2,url3

Ответы [ 3 ]

0 голосов
/ 26 сентября 2019

Я предполагаю, что ваш столбец содержит только список URL.

Одно из возможных решений:

  • применить функцию к URL столбцу, содержащемуследующие шаги:
    • разделить исходную строку на каждую запятую (три результата - это список фрагментов),
    • создать набор из этого списка (таким образом, повторяя повторения),
    • соедините ключи из этого набора, используя запятую,
  • сохраните результат обратно в исходный столбец.

Что-то вроде:

df.URL = df.URL.apply(lambda x: ','.join(set(re.split(',', x))))

Поскольку в этом коде используется модуль re , вам необходимо импортировать re до этого.

0 голосов
/ 26 сентября 2019

разделить и применить набор

d = {"url": ["url1,url1,url2",
"url2,url2,url3"]}

df = pd.DataFrame(d)
df.url.str.split(",").apply(set)
0 голосов
/ 26 сентября 2019
df['URL'] = df.URL.str.split(':').apply(lambda x: [x[0],','.join(sorted(set(x[1].split(','))))]).apply(' : '.join)

                  URL
0  row 1  : url1,url2
1  row 2  : url2,url3

, если данные

              URL
0  url1,url1,url2
1  url2,url2,url3

, то

df['URL'] = df.URL.str.split(',').apply(lambda x: ','.join(sorted(set(x))))
##print(df)

        URL
0  url1,url2
1  url2,url3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...