Я новичок в питоне. Я хочу установить индекс для определенного набора элементов строки, которые повторяются для каждой группы.
Мой фрейм данных:
data_dict ={'0_deg': [2, 11, 21, -17, 5, 40, 22, 7, 20, -6, -6, -6, 24, 21, 20, 61, 21, 5, 2, 17],
'10_deg': [12, -21, 11, 1, 4, -2, 33, 53, 18, 10, -3, -1, 23, 18, 23, 8, 11, -25, 21, -14],
'20_deg': [23, -10, 3, 20, -41, 13, 10, 5, -9, 7, -4, -21, 14, -26, -31, 9, 1, -15, 3, -6],
'30_deg': [12, 9, -5, 4, 9, -46, 1, -8, -27, 3, -9, -14, 15, -6, 14, 7, -11, 5, 19, -4]}
data_dict = pd.read_csv('Dataset.csv')
data_dict = data_dict.set_index('Indexes')
#row idx of a group in this list
idx =[4,10,37,109,133]
Здесь список создается как idx , а значения индекса записываются вручную.
Но для большей матрицы из 1000+ индексов (случайных значений) на группу это было бы очень сложной задачей.
Что я хочу, так это чтобы при чтении файла CSV было выбрано 1-е значение в строке и до тех пор, пока одно и то же значение не встречается в том же индексе, оно должно рассматриваться как 1-я группа, а индексы для 1-й группы должны храниться в idx
Например: в моей небольшой версии набора данных из 1-го столбца Indexes
1-е значения, т. Е. 4,10,37,109,133
, являются моими индексами для 1-й группы. Эти значения повторяются в той же последовательности для следующих групп.
Только они не должны вводиться вручную в коде. Группа должна рассматриваться как единица следующего 4
. Значения индекса от 4 до 133 должны рассматриваться как 1 группа в idx . Это потому, что мне нужна idx для дальнейшей части кода.
Мой фактический набор данных имеет более 1000 значений индекса на группу. Поэтому idx должен автоматически принимать все значения группы.
# getting some dimensions and sorting the data
row_idx_length = len(idx)
group_length = len(data_dict['0_deg'])
number_of_groups = len(data_dict.keys())
idx = idx*number_of_groups
data_arr = np.zeros((group_length,number_of_groups),dtype=np.int32)