Как отфильтровать с помощью pandas dataframes vaules больше и меньше среднего? - PullRequest
0 голосов
/ 20 мая 2019

. Я хотел бы отфильтровать в кадре данных между 0,5 <среднее значение> 0,5 и объединить оба отфильтрованных фрейма данных в новый фрейм данных.

  1. <означает> работает? Любые альтернативы также высоко ценятся
  2. Обратите внимание, что мой исходный фрейм данных намного больше, чем образец, приведенный в коде.

Я ожидаю, что на выходе будет новый фрейм данных, отфильтрованный по mean_depth с 3 столбцами.

import pandas as pd
import numpy as np

data= {'x': [462574.63, 462617.91, 462614.76, 462621.02, 462624.16 ], 
       "Y": [5724781.1, 5724750.7, 5724745.7, 5724750.7, 5724755.7 ], 
       "depth": [32.75, 34.74, 35.30, 34.20, 33.73]}
df = pd.DataFrame(data)

df
#df.describe()
mean_depth = 34.144000
# filter to only show the rows in a  0.5 < mean_depth > 0.5 values
# Can this be automated? so that mean_depth not has to be inputed manualy?

Ответы [ 2 ]

1 голос
/ 20 мая 2019

Вот один из способов создания фильтра «не в пределах 0,5 от среднего».

import pandas
import numpy

data = {
    'x': [462574.63, 462617.91, 462614.76, 462621.02, 462624.16 ], 
    "y": [5724781.1, 5724750.7, 5724745.7, 5724750.7, 5724755.7 ], 
    "depth": [32.75, 34.74, 35.30, 34.20, 33.73]
}

df = pandas.DataFrame(data)

mean = df['depth'].mean()
mean_delta = 0.5
depth = df['depth']
above = depth > mean + mean_delta
below = depth < mean - mean_delta

df[above | below]
0 голосов
/ 20 мая 2019

IIUC, вам нужны значения в пределах 0,5 от глубины, вам не нужно отдельно рассчитывать среднее значение,

data= {'x': [462574.63, 462617.91, 462614.76, 462621.02, 462624.16 ], 
       "Y": [5724781.1, 5724750.7, 5724745.7, 5724750.7, 5724755.7 ], 
       "depth": [32.75, 34.74, 35.30, 34.20, 33.73]}
df = pd.DataFrame(data)

new_df = df[df.depth.between(df.depth.mean() - 0.5, df.depth.mean() + 0.5)]

    x           Y           depth
3   462621.02   5724750.7   34.20
4   462624.16   5724755.7   33.73
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...