首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python的数据框架中找到给定列的平均值(有些有范围,另一些没有)?

如何在Python的数据框架中找到给定列的平均值(有些有范围,另一些没有)?
EN

Stack Overflow用户
提问于 2020-05-22 20:19:14
回答 2查看 44关注 0票数 0

我试图在Python中的数据帧中找到给定列的平均值(如图所示)。其中一些有范围(即2-3和3-4),而另一些则没有(即1和4)。

dataframe中列的文本版本:

代码语言:javascript
运行
复制
lst = ["1", "2-3", "3-4", "4"]
df = pd.DataFrame(lst)
df
1      
2-3      
3-4      
4        

我试着使用下面的函数,但是对于那些没有范围的函数,它不起作用。

代码语言:javascript
运行
复制
# a function to split the range and take the mean
def split_mean(x):
  # split before and after the hyphen (-)
  split_num = x.split("-")
  mean = (float(split_num[0])+float(split_num[1]))/2
  return mean

编辑:必须替换空值,底部函数才能工作!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-22 20:31:23

像这样改变你的功能:

代码语言:javascript
运行
复制
def split_mean(x):
  # split before and after the hyphen (-)
  split_num = x.split("-")
  if len(split_num) == 2:
     return (float(split_num[0])+float(split_num[1]))/2
  else:
     return float(x)
票数 1
EN

Stack Overflow用户

发布于 2020-05-22 21:07:52

如果您使用的是:

代码语言:javascript
运行
复制
df[0].str.split('-').transform(lambda x: mean(map(int,x)))

您将得到输出:

代码语言:javascript
运行
复制
0    1.0
1    2.5
2    3.5
3    4.0
Name: 0, dtype: float64
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61963227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档