我正在使用sklearn.datasets.fetch_20newsgroups()數據集。這裏有一些文件屬於多個新聞組。我想把這些文件當作兩個不同的實體,每個實體都屬於一個新聞組。爲此,我將文檔ID和組名稱放入數據框中。熊貓 - 基於與列的關係更改列中的值
import sklearn
from sklearn import datasets
data = datasets.fetch_20newsgroups()
filepaths = data.filenames.astype(str)
keys = []
for path in filepaths:
keys.append(os.path.split(path)[1])
groups = pd.DataFrame(keys, columns = ['Document_ID'])
groups['Group'] = data.target
groups.head()
>> Document_ID Group
0 102994 7
1 51861 4
2 51879 4
3 38242 1
4 60880 14
print (len(groups))
>>11314
print (len(groups['Document_ID'].drop_duplicates()))
>>9840
print (len(groups['Group'].drop_duplicates()))
>>20
對於每個Document_ID,如果它指定了多個組編號,我想更改它的值。例如,
groups[groups['Document_ID']=='76139']
>> Document_ID Group
5392 76139 6
5680 76139 17
我希望這成爲:
>> Document_ID Group
5392 76139 6
5680 12345 17
在此,12345是一個隨機的新的ID,是不是已經在keys
列表。
我該怎麼做?