У меня есть массив строк:
sat_names = ['3254','3269', '3291', '3329', '3352', '3367',
'3414', '3484', '3534', '3565', '3639', '3664']
Я хочу объявить переменную с именами следующим образом:
Msat_vir_cut_3254, Msat_vir_cut_3269 ... and so on
У меня есть функция с именем cut
, которая даетpandas dataframe в качестве выходных данных.
Я хочу назначить выходные данные dataframe функции 'cut' для имен переменных, используя цикл.
## define 'cut' function
def cut(frame,val,f,log):
if log == True:
fac = np.log10(f)
low_lim = np.log10(val) - fac
up_lim = np.log10(val) + fac
cut_df = frame.loc[(np.log10(frame) > low_lim) &
(np.log10(frame) < up_lim)]
else:
low_lim = val - f
up_lim = val + f
cut_df = frame.loc[(frame > low_lim) & (frame < up_lim)]
return cut_df
Пример использования функции вырезания:
Mh_sat = [3.28634047e+11 3.54157219e+11 3.28634047e+11 3.29435180e+14
1.46750987e+12 1.65298123e+12 2.34478681e+12 4.23401172e+11
2.47554291e+11 1.66607462e+11 1.36044543e+12 3.67648925e+12]
Msat_vir_cut_3254 = cut(data['Msat'],Mh_sat[0],3,True)
Я хочу повторить этот процесс для всех имен переменных, заданных в sat_names, и для всех значений Mh_sat. sat_names и Mh_sat имеют одинаковую длину, т.е. 12