У меня есть файл данных csv, который я разделил по значению столбца на 5 наборов данных для каждого человека, используя:
for i in range(1,6):
PersonData = df[df['Person'] == i].values
P[i] = PersonData
Я хочу отсортировать данные в порядке возрастания по одному столбцу, а затем разделитьданные на полпути в этом столбце, чтобы найти медиану.
Итак, я отсортировал данные следующим образом:
dataP = {}
for i in range(1,6):
sortData = P[i][P[i][:,9].argsort()]
P[i] = sortData
P[i] = pd.DataFrame(P[i])
dataP[1]
Используя это, я получаю фрейм данных для каждого из моих наборов данных 1-6отсортировано по соответствующему столбцу (9), в зависимости от того, какое число я положил в dataP [i].
Затем я вычисляю половину длины:
for i in range(1,6):
middle = len(dataP[i])/2
print(middle)
Вот где я застрял!
Мне нужно создать новый столбец в каждом dataPrame dataP [i], который разделяет длину на 2 и дает значение 0, если оно в первой половине, и 1, если оно во второй.
Это то, что я пробовал, но я не понимаю, почему он не создает новый список значений 0 и 1, который я могу позже добавить в dataP [i]:
for n in range(1, (len(dataP[i]))):
for n, line in enumerate(dataP[i]):
if middle > n:
confval = 0
elif middle < n:
confval = 1
for i in range(1,6):
Confval[i] = confval
Confval[1]
Извинитеесли это просто, я новичок в этом, поэтому многое из того, что я написал, может быть не лучшим способомсделайте это / необходимо, и извините за длинный пост.
Любая помощь будет высоко ценится.Заранее спасибо!