Получение среднего значения

Рейтинг: 1Ответов: 1Опубликовано: 08.04.2023

Как в Pandas можно получить (преобразовать) среднее значение каждой ячейки колонки, если в ячейках указан интервал? Например:

  • '15,000-19,999' - 17500,
  • '125,000-149,999' - 137500,
  • '> $1,000,000' - оставляем 1000000

То есть в итоге, получить колонку со средними значениями в ячейках. Исходная колонка:

    data['Q29']
    1                  NaN
    2                  NaN
    3                  NaN
    4        25,000-29,999
    5                  NaN
                 ...      
    23993              NaN
    23994              NaN
    23995    25,000-29,999
    23996    15,000-19,999
    23997              NaN
    Name: Q29, Length: 23997, dtype: object

Ответы

▲ 1Принят

при исходном фрейме:

               1
0               
0  25,000-29,999
1  25,000-29,999
2  15,000-19,999

Можно, например, так:

df["mean"] = df[1].str.replace(",",".").str.split("-").apply(lambda x: sum(pd.to_numeric(x))/len(x))

получите

               1     mean
0                        
0  25,000-29,999  27.4995
1  25,000-29,999  27.4995
2  15,000-19,999  17.4995