У меня есть данные, такие как образец входных данных data_df2 ниже. У меня есть код ниже, который создает столбец метки, сравнивая значение очищенного столбца со значением в записи перед ним и затем либо давая ему ту же букву, если значения совпадают, либо новое значение. У меня проблема в том, что я хотел бы, чтобы буквы, выбранные для столбца метки, начинались с каждого нового label_set_id. Таким образом, значение метки для первого label_set_id = 2 будет равно A. Каждые 20 записей label_set_id увеличиваются на 1. Кто-нибудь может подсказать, как я могу изменить приведенный ниже код, чтобы выполнить sh это? Или есть более приятный способ с pandas, скажем, с помощью функции apply. Этот код работает медленно.
код:
data_df2['label']=''
c=65
data_df2.label[0]=chr(c)
c=c+1
for i in range(1,len(data_df2)):
if(data_df2.loc[i,'Cleaned']==data_df2.loc[i-1,'Cleaned']):
data_df2.label[i]=data_df2.label[i-1]
else:
data_df2.label[i]=chr(c)
c=c+1
входные данные:
print(data_df2[:30])
id Source \
0 1 ,O-PEN 2.0
1 2 .7 FRAM BLOWER - BROTHERLY LOVE MECHANIC
2 3 @BEEZLEEXTRACTS
3 4 @CALISIFTCO_
4 5 @CALISIFTCO_ X @_ZKITTLEZ_
5 6 @CALISIFTCO_ X @WONDERBRETT
6 7 @CALISIFTCO_ X @WONDERBRETT_
7 8 @DNA_GENETICS
8 9 @EDENEXTRACTS_CA
9 10 @EDENEXTRACTS_CA X @CALISIFTCO_
10 11 @FULLFLAVAEXTRACT
11 12 @GGSTRAINS
12 13 @SHERBINSKI415
13 14 @STR8MECHANIC X @ICEDOUTEXTRACTS
14 15 @STR8MECHANIC X @REZHEADS215
15 16 [SS] 710 LABS
16 17 [SS] ABSOLUTE EXTRACTS
17 18 [SS] BIG PETE'S
18 19 [SS] BLOOM FARMS
19 20 [SS] BLUE RIVER
20 21 [SS] BRITE LABS
21 22 [SS] BROTHERLY LOVE
22 23 [SS] BROTHERLY LOVE [3 PACK]
23 24 [SS] CALIFORNIA DREAMIN
24 25 [SS] DIME BAG
25 26 [SS] EDEN INFUSIONS
26 27 [SS] EEL RIVER
27 28 [SS] GANJA GOLD
28 29 [SS] GLOWING BUDDHA
29 30 [SS] JETTY
Cleaned label_set_id label
0 O.PEN VAPE 1 A
1 BROTHERLY LOVE 1 B
2 BEEZLE EXTRACTS 1 C
3 CALI SIFT CO 1 D
4 CALI SIFT CO 1 D
5 @CALISIFTCO_ X @WONDERBRETT_ 1 E
6 @CALISIFTCO_ X @WONDERBRETT_ 1 E
7 DNA GENETICS 1 F
8 EDEN 1 G
9 CALI SIFT CO 1 H
10 FLAV RX 1 I
11 GG STRAINS 1 J
12 SHERBINSKI 1 K
13 STR8 MECHANIC 1 L
14 STR8 MECHANIC 1 L
15 710 LABS 1 M
16 ABSOLUTE XTRACTS 1 N
17 BIG PETE'S TREATS 1 O
18 BLOOM FARMS 1 P
19 BLUE RIVER 1 Q
20 BRITE LABS 2 R
21 BROTHERLY LOVE 2 S
22 BROTHERLY LOVE 2 S
23 CALIFORNIA DREAMIN 2 T
24 DIME BAG 2 U
25 EDEN 2 V
26 EEL RIVER 2 W
27 GANJA GOLD 2 X
28 GLOWING BUDDHA 2 Y
29 JETTY EXTRACTS 2 Z
выходные данные:
id Source \
0 1 ,O-PEN 2.0
1 2 .7 FRAM BLOWER - BROTHERLY LOVE MECHANIC
2 3 @BEEZLEEXTRACTS
3 4 @CALISIFTCO_
4 5 @CALISIFTCO_ X @_ZKITTLEZ_
5 6 @CALISIFTCO_ X @WONDERBRETT
6 7 @CALISIFTCO_ X @WONDERBRETT_
7 8 @DNA_GENETICS
8 9 @EDENEXTRACTS_CA
9 10 @EDENEXTRACTS_CA X @CALISIFTCO_
10 11 @FULLFLAVAEXTRACT
11 12 @GGSTRAINS
12 13 @SHERBINSKI415
13 14 @STR8MECHANIC X @ICEDOUTEXTRACTS
14 15 @STR8MECHANIC X @REZHEADS215
15 16 [SS] 710 LABS
16 17 [SS] ABSOLUTE EXTRACTS
17 18 [SS] BIG PETE'S
18 19 [SS] BLOOM FARMS
19 20 [SS] BLUE RIVER
20 21 [SS] BRITE LABS
21 22 [SS] BROTHERLY LOVE
22 23 [SS] BROTHERLY LOVE [3 PACK]
23 24 [SS] CALIFORNIA DREAMIN
24 25 [SS] DIME BAG
25 26 [SS] EDEN INFUSIONS
26 27 [SS] EEL RIVER
27 28 [SS] GANJA GOLD
28 29 [SS] GLOWING BUDDHA
29 30 [SS] JETTY
Cleaned label_set_id label
0 O.PEN VAPE 1 A
1 BROTHERLY LOVE 1 B
2 BEEZLE EXTRACTS 1 C
3 CALI SIFT CO 1 D
4 CALI SIFT CO 1 D
5 @CALISIFTCO_ X @WONDERBRETT_ 1 E
6 @CALISIFTCO_ X @WONDERBRETT_ 1 E
7 DNA GENETICS 1 F
8 EDEN 1 G
9 CALI SIFT CO 1 H
10 FLAV RX 1 I
11 GG STRAINS 1 J
12 SHERBINSKI 1 K
13 STR8 MECHANIC 1 L
14 STR8 MECHANIC 1 L
15 710 LABS 1 M
16 ABSOLUTE XTRACTS 1 N
17 BIG PETE'S TREATS 1 O
18 BLOOM FARMS 1 P
19 BLUE RIVER 1 Q
20 BRITE LABS 2 A
21 BROTHERLY LOVE 2 B
22 BROTHERLY LOVE 2 B
23 CALIFORNIA DREAMIN 2 C
24 DIME BAG 2 D
25 EDEN 2 E
26 EEL RIVER 2 F
27 GANJA GOLD 2 G
28 GLOWING BUDDHA 2 H
29 JETTY EXTRACTS 2 I