如何计算数据框中一系列范围的平均值?
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。我不想要任何范围。只是个位数的平均值。我该怎么做?
使用 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
我是 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。我不想要任何范围。只是个位数的平均值。我该怎么做?
使用 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