#python
#python
Вопрос:
У меня есть столбец «глубина», и он разделен на 5 блоков. Таким образом, глубина от 0-500 футов, 500-1000 футов, 1000-1500 футов .. и т.д. У меня есть соответствующее значение плотности на каждой глубине.
Мне нужно найти среднюю плотность в каждом из 5 блоков глубины
| Depth | Density |
|-------|---------|
| 0 | 3.3 |
| 1 | 3.55 |
| 2 | 3.44 |
| ... | ... |
| 500 | 3.2 |
Ответ №1:
Предполагая, что это фрейм данных pandas,
df.groupby(df['Depth'].floordiv(500)).mean()
Ответ №2:
Если глубина = индекс, то этот код можно немного упростить, где он делит плотности на блоки.
densityblocks = []
# make an empty list for each block
for i in range(num_blocks):
densityblocks.append([])
# Divide densities into blocks
for k in range(len(depth)):
if depth[k] < 500:
densityblocks[0].append(density[k])
elif depth[k]<1000:
densityblocks[1].append(density[k])
# Continue with elif for number of blocks
# calculate average for each block
avg_density = []
for i in range(len(densityblocks)):
for j in range(len(densityblocks[i])):
sum = sum densityblocks[i][j]
avg_density.append(sum/len(densityblocks[i]))
Комментарии:
1. Спасибо. это хорошее начало, но средние значения слишком высоки