У меня есть некоторые данные, которые я прочитал в Python как панды dataframe:Фильтрация питоны панда DataFrame на основе значений из словаря
Unnamed: 0 Initial_guess Lower_bound Upper_bound Estimated_or_Fixed
0 Ka 5 0.000001 10000 Estimated
2 Kd 5 0.000001 10000 Estimated
3 Ki 5 0.000001 10000 Estimated
5 Kr 5 0.000001 10000 Estimated
6 R1_I 5 0.000001 10000 Estimated
7 PR1 5 0.000001 10000 Estimated
8 PR2 5 0.000001 10000 Estimated
9 alpha 5 0.000001 10000 Estimated
10 Kcd 5 0.000001 10000 Estimated
12 Klid 5 0.000001 10000 Estimated
18 LR1R2_I 5 1.000000 10000 Estimated
Variable_type
0 Kinetic parameter
2 Kinetic parameter
3 Kinetic parameter
5 Kinetic parameter
6 Kinetic parameter
7 Kinetic parameter
8 Kinetic parameter
9 Kinetic parameter
10 Kinetic parameter
12 Kinetic parameter
18 Species IC
Первый столбец unnamed: 0
являются параметрами. У меня много моделей, каждая из которых содержит разные комбинации этих параметров. Моя задача состоит в том, чтобы отфильтровать эту таблицу для каждой модели, удалив любую строку, параметр которой отсутствует в модели. У меня есть словари для каждой модели с параметрами, которые они содержат. Параметры могут быть двух типов: species IC
или kinetic parameter
. Вот пример из этих словарей для первой модели:
Species_IC:
{'R1': '2.7109e+02', 'R2': '1.2709e+02', 'R1_I': '2.7109e+03', 'R2_I': '1.2709e+03', 'LR1R2': '1.6913e+00', 'LR1R2_I': '1.6913e+01'}
Kinetic_parameter:
{'Ka': '1.0000e+00', 'TGFb': '1.0000e-01', 'Synth': '1.0000e+00', 'PR1': '8.0000e+00', 'Sink': '0.0000e+00', 'PR2': '4.0000e+00', 'alpha': '1.0000e+00'}
Мой код:
def write_parameter_bounds_file(self):
model1=self.all_models_dirs[0] #get first model from a list of model. I'll do it on the first model then generalize to the rest.
species=self.get_model_species(model1+'.xml') #get the species dct from this model
parameters=self.get_model_parameters(model1+'.xml')#get parameter dct from this model
param_info=self.read_parameter_bounds_template() #get all parameters from template. This is the pandas dataframe at the top.
estimated_species=[]
estimated_params=[]
for i in species.keys():
print '\n'
for j in param_info[param_info.columns[0]]:
if i==j:
estimated_species.append(i)
for i in parameters.keys():
print '\n'
for j in param_info[param_info.columns[0]]:
if i==j:
estimated_params.append(i)
param_list=estimated_params+estimated_species #This is a list of the parameters that need to be included in the output df
Кто-нибудь знает, как я могу использовать param_list
фильтровать исходный панд ФР?
Благодаря