import pandas as pd import numpy as np import os path = '/home/colas/Documents/5_BDD/3_INPN/BDD_ZNIEFF' reg = '084_Auvergne-Rhone-Alpes' ssreg = '082_Rhone-Alpes' DIR = os.path.join(path,reg,ssreg) def znieff(path,code,column='NM_REGZN'): df = pd.read_csv(os.path.join(path,'znieff.csv'),sep=';') df = df.astype(str) if isinstance(code,str): return df[df[column]==code] elif isinstance(code,(pd.Series,list,pd.Index,np.ndarray)): code = list(code) return df[df[column].isin(code)] else: return df def source_znieff(path,code,column='NM_SFFZN'): df = pd.read_csv(os.path.join(path,'source_znieff.csv'),sep=';') df = df.astype(str) if isinstance(code,str): return df[df[column]==code] elif isinstance(code,(pd.Series,list,pd.Index,np.ndarray)): code = list(code) return df[df[column].isin(code)] else: return df def source(path,code,column='ID_SOURCE'): df = pd.read_csv(os.path.join(path,'source.csv'),sep=';') df = df.astype(str) if isinstance(code,str): return df[df[column]==code] elif isinstance(code,(pd.Series,list,pd.Index,np.ndarray)): code = list(code) return df[df[column].isin(code)] else: return df def _rel_znieff_source(path,code,column='NM_REGZN'): znief = znieff(path,code,column) sznief = source_znieff(path,znief.NM_SFFZN.unique()) return source(path,sznief.ID_SOURCE.unique()) def get_source(path,code): return _rel_znieff_source(path,code) if __name__ == "__main__": get_source(DIR,'38000064')