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

问题描述 投票:3回答:2

是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。我不希望有任何范围。只是个位数的平均值。我该怎么做?

python pandas dataframe mean series
2个回答
0
投票

让我们来做findallexplode

s=df.Lifespan.str.findall('\d+').explode().astype(float).mean(level=0)
0      18.0
1      17.0
2      16.0
3      16.0
4      16.0
201    13.5
202    13.0
203    13.0
204    14.0
205    15.0
Name: Lifespan, dtype: float64

df['Life_new']=s

0
投票

使用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
© www.soinside.com 2019 - 2024. All rights reserved.