Используя pandas dataframe, я пытаюсь получить количество специальных символов в столбце, используя, но не получая желаемый вывод.
Мой файл .tsv: входной файл
NAME ID
S. gambu NNNTYR
S. gambu RTD:78689
S. gambu GTT:67878
S. gambu RTD?78689
G. homos SFDG\SS234R
G. homos SFHG#SR234R
G. homos JHFG:EE345T
G. homos TYU=TT678R
T. mosus RTU,YY67ET
T. mosus TTR%YY67ET
G. ytrty NaN
Я пытаюсь получить количество для каждого специального символа (: \, #% =?) Формы 'ID' без 'ИМЯ' (для каждого имени) (имя = 4 и специальные символы = 7), Я не получаю желаемый вывод для каждого имени и специальных символов, присутствующих в идентификаторах, которые являются "(: \, #% =?)"
Мне нужно рассчитывать для каждого специального символа для каждого имени. я пытался, но не получил желаемый вывод.
Желаемый вывод:
NAME : \ # ? % = ,
S. gambu RTD:78689 0 0 RTD?78689 0 0 0
GTT:67878
count(2) count(1)
G. homos 0 SFDG\SS234R SFHG#SR234R 0 0 TYU=TT678R 0
count(1) count(1) count(1)
T. mosus 0 0 0 0 TTR%YY67ET 0 RTU,YY67ET
count(1) count(1)
G. ytrty NaN NaN NaN NaN NaN NaN NaN
Total 2 1 1 1 1 1 1
желаемый вывод
~ ~ ~ python
код, который я пробовал:
pattern1 = [':','#',',','%',]
count= 0
count1 = 0
with open('name.txt') as f:
lines = f.read().splitlines()
for pat in pattern1:
pattern1 = re.compile(pat)
for line in lines:
for i in range(len(df3)):
if ((df3.loc[i,'NAME'] == line)):
if (pattern1.search(df3.loc[i,'ID'])):
count = count+1
out =str(df3.loc[i,'NAME'])+"\t"+str(df3.loc[i,'ID'])+"\n"
print(out)
~ ~ ~
для желаемого вывода, я прикрепил оснастку, так как он содержал больше полей.