Как рассчитать среднее значение диапазона из ряда в кадре данных? - PullRequest
5 голосов
/ 28 апреля 2020

Я новичок в Python и работаю с манипуляциями с данными

У меня есть фрейм данных

df3
Out[22]: 
                           Breed Lifespan
0         New Guinea Singing Dog       18
1                      Chihuahua       17
2                     Toy Poodle       16
3           Jack Russell Terrier       16
4                       Cockapoo       16
..                           ...      ...
201                      Whippet   12--15
202  Wirehaired Pointing Griffon   12--14
203               Xoloitzcuintle       13
204                  Yorkie--Poo       14
205            Yorkshire Terrier   14--16

Как вы заметили выше, некоторые продолжительности жизни находятся в диапазоне, например 14-- 16. Тип данных [Продолжительность жизни]:

type(df3['Lifespan'])
Out[24]: pandas.core.series.Series

. Я хочу, чтобы он отражал среднее из этих двух чисел, т. Е. 15. Я не хочу никаких диапазонов. Просто в среднем как один ди git. Как мне это сделать?

1 Ответ

2 голосов
/ 29 апреля 2020

Использование split и expand=True

df = pd.DataFrame({'Breed': ['Dog1', 'Dog2'],
                   'Lifespan': [12, '14--15']})

df['Lifespan'] = (df['Lifespan']
 .astype(str).str.split('--', expand=True)
 .astype(float).mean(axis=1)
)

df
#   Breed   Lifespan
# 0 Dog1    12.0
# 1 Dog2    14.5
...