Я пытаюсь вычислить среднее значение одного столбца по отношению к диапазонам других столбцов

#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. Спасибо. это хорошее начало, но средние значения слишком высоки