如何计算数据框中一系列范围的平均值?

How do I calculate an average of a range from a series within in a dataframe?

我是 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 的范围内。 [Lifespan] 的数据类型是

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

我希望它反映这两个数字的平均值,即 15。我不想要任何范围。只是个位数的平均值。我该怎么做?

使用 splitexpand=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