Python 消除数据帧中列值的重复-该列包含多个URL';s
因此,在我的DataFrame Pd1中有一个名为“URL”的列Python 消除数据帧中列值的重复-该列包含多个URL';s,python,pandas,dataframe,Python,Pandas,Dataframe,因此,在我的DataFrame Pd1中有一个名为“URL”的列 URL row 1 : url1,url1,url2 row 2 : url2,url2,url3 输出: URL row 1 : url1,url2 row 2 : url2,url3 如果数据 URL 0 url1,url1,url2 1 url2,url2,url3 然后 我假设您的列只包含URL列表 可能的解决办法之一是: 将函数应用于URL列,包
URL
row 1 : url1,url1,url2
row 2 : url2,url2,url3
输出:
URL
row 1 : url1,url2
row 2 : url2,url3
如果数据
URL
0 url1,url1,url2
1 url2,url2,url3
然后
我假设您的列只包含URL列表 可能的解决办法之一是:
- 将函数应用于URL列,包括以下步骤:
- 在每个逗号上拆分源字符串(tre result是 碎片)
- 从该列表中创建一个集合(从而消除重复)
- 使用逗号连接此集中的键
- 将结果保存回源列
df.URL = df.URL.apply(lambda x: ','.join(set(re.split(',', x))))
由于此代码使用re模块,您必须在之前导入re。拆分并应用集合
d={“url”:[“url1,url1,url2”,
“url2、url2、url3”]}
df=pd.数据帧(d)
df.url.str.split(“,”).apply(集合)
您尝试过什么代码,我也假设您使用的是pandas?URL
列只是一个字符串,还是它包含一个列表?干得不错,但我感觉“row1:”和“Row2:”不是URL
列的一部分,而是他编写df索引的方式。啊!!我使用了,所以在我的数据帧Pd1中有一个名为“URL”的列,如果OP发生了变化,那么我会相应地进行改变
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
df.URL = df.URL.apply(lambda x: ','.join(set(re.split(',', x))))