求助excel公式,需用excel index函数数,输出"两次累计得分"/2的值小于"评均分"的所有姓名,如图

503 Service Temporarily Unavailable
503 Service Temporarily Unavailable 上传我的文档
 下载
 收藏
粉丝量:60
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
办公软件应用之EXCEL中如何查找与引用函数
下载积分:969
内容提示:办公软件应用之EXCEL中如何查找与引用函数
文档格式:DOC|
浏览次数:594|
上传日期: 01:13:13|
文档星级:
全文阅读已结束,如果下载本文需要使用
 969 积分
下载此文档
该用户还上传了这些文档
办公软件应用之EXCEL中如何查找与引用函数
关注微信公众号用excel函数判断正负数值只显示正数_百度知道
用excel函数判断正负数值只显示正数
用excel函数来判断A列的数值正负,在B列中只显示正数,谢谢
我有更好的答案
=IF(A1&0,A1,&&)公式下拉
本回答被提问者采纳
=MAX(A1,0)
为您推荐:
其他类似问题
您可能关注的内容
excel函数的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。用Pandas完成Excel中常见的任务(2) - Python - 伯乐在线
& 用Pandas完成Excel中常见的任务(2)
读者对于本系列的回应,让我感到很兴奋。感谢大家正面的反馈。我想把本系列继续下去,重点介绍其他的一些你经常使用Excel完成的任务,并且展示给你如何在 中使用相同的功能。
在第一篇文章中,我着重介绍了Excel中常见的数学计算工作,以及在pandas如何完成这些工作。在本文中,我们将着重介绍一些常见的选择和筛选任务,并且介绍如何在pandas中完成同样的事情。
如果您想要继续下去,您可以下载本。
导入pandas和numpy模块。
import pandas as pd
import numpy as np
import pandas as pdimport numpy as np
导入我们样本公司销售年销售额的Excel文件。
df = pd.read_excel("sample-salesv3.xlsx")
df = pd.read_excel("sample-salesv3.xlsx")
快速浏览一下数据类型,以确保所以事情都能如预期一样运行。
account number int64
name object
sku object
quantity int64
unit price float64
ext price float64
date object
dtype: object
account number int64name objectsku objectquantity int64unit price float64ext price float64date objectdtype: object
你会注意到,我们的date列,显示的是一个通用对象。我们准备把它转换为日期对象,来简化将来会用到的一些选择操作。
df['date'] = pd.to_datetime(df['date'])
df['date'] = pd.to_datetime(df['date'])df.head()
account number
unit price
Barton LLC
Trantow-Barrows
Kassulke, Ondricka and Metz
Jerde-Hilpert
account number int64
name object
sku object
quantity int64
unit price float64
ext price float64
date datetime64[ns]
dtype: object
account number int64name objectsku objectquantity int64unit price float64ext price float64date datetime64[ns]dtype: object
现在,data变成了一个datetime类型的对象,这对于将来的操作是很有用的。
我认为在Excel中最方便的功能是筛选。我想几乎每一次有人拿到一个任意大小的Excel文件,当他们想要筛选数据的时候,都会使用这个功能。
如图,对本数据集使用该功能:
同Excel中的筛选功能一样,你可以使用pandas来筛选和选择某个特定数据的子集。
比方说,如果我们仅仅想查看一个特定的账号,我们可以简单是在Excel中完成,或是使用pandas完成操作。
下面是Excel的筛选解决方案:
在pandas中执行相关操作比Excel中更加直观。注意,我将会使用head 函数来显示前面几个结果。这仅仅是为了让本文保持简短。
df[df["account number"]==307599].head()
df[df["account number"]==307599].head()
你还可以以数值为基准来进行筛选。我就不再举任何Excel的例子了。我相信你能明白。
df[df["quantity"] & 22].head()
df[df["quantity"] > 22].head()
account number
unit price
Barton LLC
Kassulke, Ondricka and Metz
Fritsch, Russel and Anderson
Stokes LLC
如果我们想要更多复杂的筛选,我们可以可以使用map 来以多重标准进行筛选。在这个例子中,从B1中查找以“sku”中起始的项目。
df[df["sku"].map(lambda x: x.startswith('B1'))].head()
df[df["sku"].map(lambda x: x.startswith('B1'))].head()
account number
unit price
Barton LLC
Fritsch, Russel and Anderson
Stokes LLC
把两个或更多的语句连接起来很简单,用&就可以。
df[df["sku"].map(lambda x: x.startswith('B1')) & (df["quantity"] & 22)].head()
df[df["sku"].map(lambda x: x.startswith('B1')) & (df["quantity"] > 22)].head()
account number
unit price
Barton LLC
Fritsch, Russel and Anderson
Fritsch, Russel and Anderson
Trantow-Barrows
pandas支持的另外一个很有用的函数是isin。它使得我们可以定义一个列表,里面包含我们所希望查找的值
在这个例子中,我们查找包含两个特定account number值的全部项目。
df[df[&account number&].isin([895])].head()
df[df["account number"].isin([714466,218895])].head()
account number
unit price
Trantow-Barrows
Trantow-Barrows
Trantow-Barrows
pandas支持的另外一个函数叫做query,它使得我们可以有效的再数据集中选择数据。使用它需要安装 ,所以请确保你在进行下面步骤前已经进行了安装。
如果你想要通过名字来得到一个消费者列表,你可以使用query来完成,和前面展示的python语法类似。
df.query('name == ["Kulas Inc","Barton LLC"]').head()
df.query('name == ["Kulas Inc","Barton LLC"]').head()
account number
unit price
Barton LLC
这里只是做个简单的示例,query函数能做到的还不止这些。我在此展示这些函数的用法,以便当你有需要的时候,会意识到可以用它。
使用pandas,你可以对日期进行更加复杂的筛选。在我们处理日期前,我建议你把日期栏进行一个排序,以便返回的结果如你所愿。
df = df.sort('date')
df = df.sort('date')df.head()
account number
unit price
Barton LLC
Trantow-Barrows
Kassulke, Ondricka and Metz
Jerde-Hilpert
在操作日期前,为您展示python的筛选语法。
df[df['date'] &=''].head()
df[df['date'] >=''].head()
account number
unit price
Purdy-Kunde
Trantow-Barrows
Fritsch, Russel and Anderson
pandas的一个特别棒的特性是它能够理解日期,所以它允许我们进行部分筛选。如果我只想要查看最近几个月的日期数据,我可以这样做。
df[df['date'] &='2014-03'].head()
df[df['date'] >='2014-03'].head()
account number
unit price
Purdy-Kunde
Sanford and Sons
Sanford and Sons
Fritsch, Russel and Anderson
Keeling LLC
当然,你可以把筛选标准链接起来。
df[(df['date'] &='') & (df['date'] &= '')].head()
df[(df['date'] &='') & (df['date'] &= '')].head()
account number
unit price
Fritsch, Russel and Anderson
Purdy-Kunde
Kuhn-Gusikowski
Pollich LLC
由于pandas可以理解日期列,所以可以将日期值设为不同的格式,都会得到正确的结果。
account number
unit price
Kassulke, Ondricka and Metz
White-Trantow
Purdy-Kunde
Purdy-Kunde
Kuhn-Gusikowski
df[df['date'] &= '10-10-2014'].head()
df[df['date'] >= '10-10-2014'].head()
account number
unit price
Cronin, Oberbrunner and Spencer
Barton LLC
Kiehn-Spinka
Cronin, Oberbrunner and Spencer
Fritsch, Russel and Anderson
当操作时间序列数据时,如果你把数据进行转化,以日期作为索引,我们可以做一些变相的筛选。
使用set_index 来设置新的索引。
df2 = df.set_index(['date'])
df2.head()
df2 = df.set_index(['date'])df2.head()
account number
unit price
Barton LLC
Trantow-Barrows
Kassulke, Ondricka and Metz
Jerde-Hilpert
你可以通过切分数据来获取一段区间。
df2["":""].head()
df2["":""].head()
account number
unit price
Barton LLC
Trantow-Barrows
Kassulke, Ondricka and Metz
Jerde-Hilpert
再一次的,我们可以使用不同的日期表示方法来避免模棱两可的日期命名惯例。
df2["2014-Jan-1":"2014-Feb-1"].head()
df2["2014-Jan-1":"2014-Feb-1"].head()
account number
unit price
Barton LLC
Trantow-Barrows
Kassulke, Ondricka and Metz
Jerde-Hilpert
df2["2014-Jan-1":"2014-Feb-1"].tail()
df2["2014-Jan-1":"2014-Feb-1"].tail()
account number
unit price
Jerde-Hilpert
Jerde-Hilpert
Jerde-Hilpert
df2["2014"].head()
df2["2014"].head()
account number
unit price
Barton LLC
Trantow-Barrows
Kassulke, Ondricka and Metz
Jerde-Hilpert
df2["2014-Dec"].head()
df2["2014-Dec"].head()
account number
unit price
Trantow-Barrows
Kiehn-Spinka
Herman LLC
Pollich LLC
正如你所见到的那样,在进行基于日期的排序或者筛选时,可以有很多选择。
额外的字符串方法
Pandas同样已经支持了矢量字符串方法。
如果我们想识别出sku栏中包含某一特定值的全部值。我们可以使用str.contains。在这个例子中,我们已知sku总是以一种相同的方式表示,所以B1仅会出现在sku的前面。你需要理解你的数据来保证你能够得到你想要的结果。
df[df['sku'].str.contains('B1')].head()
df[df['sku'].str.contains('B1')].head()
account number
unit price
Barton LLC
Fritsch, Russel and Anderson
Stokes LLC
我们可以把查询连接起来并且使用排序来控制数据的顺序。
df[(df['sku'].str.contains('B1-531')) & (df['quantity']&40)].sort(columns=['quantity','name'],ascending=[0,1])
df[(df['sku'].str.contains('B1-531')) & (df['quantity']>40)].sort(columns=['quantity','name'],ascending=[0,1])
account number
unit price
Pollich LLC
Keeling LLC
Halvorson, Crona and Champlin
Kassulke, Ondricka and Metz
Trantow-Barrows
White-Trantow
在Excel中,我发现我自己经常会尝试从一个冗长的列表中,得到一个包含不重复项的小列表。在Excel中这件事情需要分几步来完成,但是在Pandas中却非常简单。有一种方式是使用Excel中提供的高级筛选工具来完成。
在pandas中,我们对某列使用这个unique函数来获取这个列表。
df["name"].unique()
df["name"].unique()
array([u'Barton LLC', u'Trantow-Barrows', u'Kulas Inc',
u'Kassulke, Ondricka and Metz', u'Jerde-Hilpert', u'Koepp Ltd',
u'Fritsch, Russel and Anderson', u'Kiehn-Spinka', u'Keeling LLC',
u'Frami, Hills and Schmidt', u'Stokes LLC', u'Kuhn-Gusikowski',
u'Herman LLC', u'White-Trantow', u'Sanford and Sons',
u'Pollich LLC', u'Will LLC', u'Cronin, Oberbrunner and Spencer',
u'Halvorson, Crona and Champlin', u'Purdy-Kunde'], dtype=object)
If we wanted to include the account number, we could use drop_duplicates .
array([u'Barton LLC', u'Trantow-Barrows', u'Kulas Inc',u'Kassulke, Ondricka and Metz', u'Jerde-Hilpert', u'Koepp Ltd',u'Fritsch, Russel and Anderson', u'Kiehn-Spinka', u'Keeling LLC',u'Frami, Hills and Schmidt', u'Stokes LLC', u'Kuhn-Gusikowski',u'Herman LLC', u'White-Trantow', u'Sanford and Sons',u'Pollich LLC', u'Will LLC', u'Cronin, Oberbrunner and Spencer',u'Halvorson, Crona and Champlin', u'Purdy-Kunde'], dtype=object)If we wanted to include the account number, we could use drop_duplicates .
如果我们想要包含账户号,我们可以使用drop_duplicates。
df.drop_duplicates(subset=["account number","name"]).head()
df.drop_duplicates(subset=["account number","name"]).head()
account number
unit price
Barton LLC
Trantow-Barrows
Kassulke, Ondricka and Metz
Jerde-Hilpert
很显然我们放入了的数据超过了我们的需要,得到了一些无用的信息,因此,使用ix 来仅仅选择第一第二列。
df.drop_duplicates(subset=["account number","name"]).ix[:,[0,1]]
df.drop_duplicates(subset=["account number","name"]).ix[:,[0,1]]
account number
Barton LLC
Trantow-Barrows
Kassulke, Ondricka and Metz
Jerde-Hilpert
Fritsch, Russel and Anderson
Kiehn-Spinka
Keeling LLC
Frami, Hills and Schmidt
Stokes LLC
Kuhn-Gusikowski
Herman LLC
White-Trantow
Sanford and Sons
Pollich LLC
Cronin, Oberbrunner and Spencer
Halvorson, Crona and Champlin
Purdy-Kunde
我认为这个记住这个单独的命令比记忆Excel的各步操作更容易。
如果你想要查看我的 请随意下载。
在我发表了我的第一篇文章之后,Dave Proffer在Twitter上转发了我的文章并评论到“打破你#excel沉迷的一些好技巧”。我觉得这句话非常准确,它描述了在我们的生活中使用Excel是有多么的频繁。大多数的人只管伸手去用却从来没有意识到它的局限性。我希望这个系列的文章可以帮助大家认识到我们还有其他的替代工具,Python+Pandas是一个极其强大的组合。
打赏支持我翻译更多好文章,谢谢!
打赏支持我翻译更多好文章,谢谢!
任选一种支付方式
关于作者:
可能感兴趣的话题
df.drop_duplicates(subset=["account number","name"]).head() 这句, 应该改成 df.drop_duplicates(cols=["account number","name"]).head() 或者 df.drop_duplicates(["account number","name"]).head(). 参见:
关于 Python 频道
Python频道分享 Python 开发技术、相关的行业动态。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2018 伯乐在线

我要回帖

更多关于 excel的index函数 的文章

 

随机推荐