私はsklearn.datasets.fetch_20newsgroups()データセットを使用しています。ここでは、複数のニュースグループに属するいくつかのドキュメントがあります。私はそれらの文書を、それぞれが1つのニュースグループに属する2つの異なるエンティティとして扱いたいと思います。これを行うために、私は文書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はkeys
リストにないランダムな新しいIDです。
どうすればいいですか?