我從一個資料幀生成了三個輸出,我試圖Sentence_ID通過從 1 開始為每個輸出重置我的句子 ( )的識別符號。
輸出示例:
Sentence_ID Mention Tag
6388 Chailland B-LOCATION
6388 , O
6388 Mayenne B-LOCATION
6389 poste O
6389 de O
6389 Goumois B-LOCATION
6389 ( I-LOCATION
6389 Doubs I-LOCATION
6389 ) I-LOCATION
6389 . O
6390 Pichet B-PERSON
6390 ( O
6390 veuve O
6390 ) O
6390 , O
6390 de O
6390 Paris B-LOCATION
6390 . O
... continue
預期輸出:
Sentence_ID Mention Tag
1 Chailland B-LOCATION
1 , O
1 Mayenne B-LOCATION
2 poste O
2 de O
2 Goumois B-LOCATION
2 ( I-LOCATION
2 Doubs I-LOCATION
2 ) I-LOCATION
2 . O
3 Pichet B-PERSON
3 ( O
3 veuve O
3 ) O
3 , O
3 de O
3 Paris B-LOCATION
3 . O
... continue
我一定遺漏了一些東西,但不確定我是否應該在Sentence_id列(via group_by())或reset_index此特定列上應用計數器來完成此任務。
如果有人有線索,請提前致謝。
uj5u.com熱心網友回復:
您可以使用pd.factorize生成一組新的序列號,如下所示:
df['Sentence_ID'] = pd.factorize(df['Sentence_ID'])[0] 1
或使用 Series.factorize
df['Sentence_ID'] = df['Sentence_ID'].factorize()[0] 1
結果:
print(df)
Sentence_ID Mention Tag
0 1 Chailland B-LOCATION
1 1 , O
2 1 Mayenne B-LOCATION
3 2 poste O
4 2 de O
5 2 Goumois B-LOCATION
6 2 ( I-LOCATION
7 2 Doubs I-LOCATION
8 2 ) I-LOCATION
9 2 . O
10 3 Pichet B-PERSON
11 3 ( O
12 3 veuve O
13 3 ) O
14 3 , O
15 3 de O
16 3 Paris B-LOCATION
17 3 . O
uj5u.com熱心網友回復:
您可以創建一個字典,其鍵是舊 ID,值是新 ID,并使用它來映射新Sentence_ID列
mapping = dict(zip(df["Sentence_ID"].unique(), range(1, df["Sentence_ID"].nunique() 1)))
df["Sentence_ID"] = df["Sentence_ID"].map(mapping)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/330988.html
