init depot renew
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 -*-
|
||||
#Nom : : taxref.py
|
||||
#Description :
|
||||
#Copyright : 2021, CEN38
|
||||
#Auteur : Colas Geier
|
||||
#Version : 1.0
|
||||
|
||||
|
||||
import pandas as pd
|
||||
|
||||
PATHIN = '~/Documents/5_BDD/TAXON/TAXREF/TAXREF_V14_2020/'
|
||||
FILE = 'TAXREFv14.txt'
|
||||
sep = '\t'
|
||||
LB_NOM = 'Taraxacum bulbosum'
|
||||
|
||||
df = pd.read_csv(PATHIN+FILE, sep = sep)
|
||||
|
||||
# tar = df[df.LB_NOM.str.contains('Taraxacum')].iloc[:,:15]
|
||||
# tarbulb = tar[tar.LB_NOM == 'Taraxacum bulbosum']
|
||||
# taxref = df[df.CD_NOM == tarbulb.CD_REF]
|
||||
|
||||
# lst_taxon = df[df.LB_NOM.str.contains('Taraxacum') & df.RANG.str.fullmatch('ES')].iloc[:,:15].CD_NOM
|
||||
|
||||
|
||||
esp2 = df[df.LB_NOM == LB_NOM]
|
||||
df2 = df3 = esp3 = esp2
|
||||
rang3 = rang2 = esp2.RANG.values[0]
|
||||
|
||||
|
||||
def get_taxonomie (taxon, taxref, detail = False):
|
||||
# Définition du niveau de détail
|
||||
if detail:
|
||||
cd_taxsup = 'CD_SUP'
|
||||
else:
|
||||
cd_taxsup = 'CD_TAXSUP'
|
||||
|
||||
esp = taxref[taxref.CD_NOM == taxon]
|
||||
esp_nom = esp.LB_NOM.values[0]
|
||||
|
||||
# Récupértation de l'espèce de référence
|
||||
if esp.CD_NOM.equals(esp.CD_REF) :
|
||||
print('OK')
|
||||
espref = esp
|
||||
else:
|
||||
espref = taxref[taxref.CD_NOM == esp.CD_REF.values[0]]
|
||||
|
||||
esptemp = esp
|
||||
rang = esp.RANG.values[0]
|
||||
|
||||
# Récupération de la taxonomie
|
||||
while (rang != 'KD'):
|
||||
reftemp = taxref[taxref.CD_NOM == esptemp.CD_REF.values[0]]
|
||||
taxsup = taxref[taxref.CD_NOM == reftemp[cd_taxsup].values[0]]
|
||||
esptemp = taxsup
|
||||
rang = esptemp.RANG.values[0]
|
||||
esp = esp.combine_first(taxsup)
|
||||
|
||||
# Transpose les noms de rangs en ligne
|
||||
tmp = esp[['RANG', 'LB_NOM']]
|
||||
tmp.set_index('RANG', inplace=True)
|
||||
tmp = tmp.T
|
||||
tmp.columns.name = None
|
||||
tmp.reset_index(drop=True, inplace=True)
|
||||
id_cdnom = esp.columns.to_list().index('CD_NOM')
|
||||
esp = esp[esp.LB_NOM == esp_nom].iloc[:,id_cdnom:]
|
||||
esp.reset_index(drop=True, inplace=True)
|
||||
tmp.join(esp, how='outer')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
while (rang2 != 'KD'):
|
||||
print(rang2)
|
||||
espref = df[df.CD_NOM == esp2.CD_REF.values[0]]
|
||||
taxsup = df[df.CD_NOM == espref.CD_TAXSUP.to_list()[0]]
|
||||
esp2 = taxsup
|
||||
rang2 = esp2.RANG.to_list()[0]
|
||||
df2 = pd.concat([df2, taxsup])
|
||||
|
||||
df2.iloc[:,:15]
|
||||
|
||||
while (rang3 != 'KD'):
|
||||
print(rang3)
|
||||
espref = df[df.CD_NOM == esp3.CD_REF.to_list()[0]]
|
||||
taxsup = df[df.CD_NOM == espref.CD_SUP.to_list()[0]]
|
||||
esp3 = taxsup
|
||||
rang3 = esp3.RANG.to_list()[0]
|
||||
df3 = pd.concat([df3, taxsup])
|
||||
|
||||
df3.iloc[:,:15]
|
||||
Reference in New Issue
Block a user