Форум сайта python.su
Подскажите, есть данный код. Устанавливается значение (ver_val) и затем это значение 10 раз измеряется и добавляется в датафрейм. И так по кругу пока не закончатся значения в (ver_val). В результате данные измерения записываются в csv файл в одну колонку. Собственно вопрос: как сделать вывод первых 10 измерений в столбец, далее следующие 10 в следующий столбцец и так далее.
Спасибо.
for value in ver_val[rang]: set_value = float(value) cal.out_set(set_value) # enable output cal.out_enable() # Wait for output to settle and read output cal.inst.write("*WAI; OUT?") time.sleep(3) # take a nap few seconds cal.out_read() val = [] for samples in range(10): # количество измерений meas['Measurements'] = dmm.get_data() print("Измерение %d: %.9f В" % (samples + 1, dmm_val)) val.append(dmm_val) # Создает список из количества измерений measurements = measurements.append(meas, ignore_index=True)
Офлайн
Irv1n
как сделать вывод первых 10 измерений в столбец, далее следующие 10 в следующий столбцец и так далее.
>>> def split_list(lst, n): ... out = [] ... tmp = [] ... for i in lst: ... tmp.append(i) ... if len(tmp) == n: ... out.append(tmp) ... tmp = [] ... if tmp: ... out.append(tmp) ... return out ... >>> def transpose(mtx): ... out = [] ... columns = tuple(map(iter, mtx)) ... while True: ... outrow = [next(i, None) for i in columns] ... if outrow == [None] * len(outrow): ... break ... out.append(outrow) ... return out ... >>> lst = list(range(50)) >>> lst [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49] >>> >>> split = split_list(lst, 10) >>> split [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34, 35, 36, 37, 38, 39], [40, 41, 42, 43, 44, 45, 46, 47, 48, 49]] >>> >>> transposed = transpose(split) >>> transposed [[0, 10, 20, 30, 40], [1, 11, 21, 31, 41], [2, 12, 22, 32, 42], [3, 13, 23, 33, 43], [4, 14, 24, 34, 44], [5, 15, 25, 35, 45], [6, 16, 26, 36, 46], [7, 17, 27, 37, 47], [8, 18, 28, 38, 48], [9, 19, 29, 39, 49]] >>> >>> for i in transposed: ... print(('{:5d}' * len(transposed[0])).format(*i)) ... 0 10 20 30 40 1 11 21 31 41 2 12 22 32 42 3 13 23 33 43 4 14 24 34 44 5 15 25 35 45 6 16 26 36 46 7 17 27 37 47 8 18 28 38 48 9 19 29 39 49 >>>
Отредактировано py.user.next (Янв. 26, 2021 00:52:08)
Офлайн
Спасибо, все работает! Может еще кто поможет с такой задачей:
ver_val = OrderedDict() ver_val[0.1] = [0.1, -0.1] ver_val[1] = [1, -1] ver_val[10] = [1, 5, 10, -1, -5, -10] ver_val[100] = [100, -100] ver_val[1000] = [1000, -1000] results = pd.DataFrame() measurements = pd.DataFrame() calc = {} meas = {} calc_pool = [] # val2 = [] # Цикл на установку диапазона и обнуление мультиметра for rang in ver_val: cal.out_set("0 mV") cal.out_enable() # Wait for output to settle and read output cal.inst.write("*WAI; OUT?") time.sleep(3) # take a nap few seconds dmm.set_range(rng=str(rang)) # dmm.set_null() time.sleep(3) # Цикл на установку точек калибровки for value in ver_val[rang]: set_value = float(value) cal.out_set(set_value) # enable output cal.out_enable() # Wait for output to settle and read output cal.inst.write("*WAI; OUT?") time.sleep(3) # take a nap few seconds cal.out_read() # Цикл на количество измерений в одной точке val = [] for samples in range(2): # количество измерений meas['Measurements'] = dmm.get_data() dmm.get_data() print("Измерение %d: %.9f В" % (samples + 1, dmm_val)) val.append(dmm_val) # Создает список из количества измерений measurements = measurements.append(meas, ignore_index=True)
Отредактировано Irv1n (Янв. 28, 2021 16:23:25)
Офлайн
Irv1nТы не знаешь, что pandas - это не питон, а сторонний модуль, который вообще нужно изучать отдельно от питона. Сначала надо изучать питон, потом только надо изучать pandas. И то не факт, что в этом будет необходимость, потому что есть много сторонних модулей, которые конкурируют друг с другом. К тому же питон всё это может делать вообще без модулей.
только начал изучать python на примерах
Офлайн
py.user.next спасибо Вам за информацию. Не ищем легких путей . Свою задачу решил, остался вопрос:
как сделать название столбца(колонки) из двух значений, к примеру
Диапазон: 0.1
Точка 0.1
0.0999999
0.0999996
0.0999997
Офлайн