python使用pandas中获取Excel表中的数据(三)

前面两节我们均是通过iloc[]或者loc[]获取Excel表中的数据的。但是有时还会出现某些情况,例如,选择的是某一列数据大于0的情况。这时,就需要添加一些判断做处理。如下代码将列举出这些情况

# 原始数据
>>> import pandas as pd
>>> df = pd.read_excel(r'D:\myExcel\1.xlsx', 'Sheet1')
>>> df
     name  math  science
0     bob    23       12
1  millor    32       32
2   jiken    61       89
3     tom    34       94
4    json    83       12
5    dela    96       67
6   rison    90       34

1、获取name列长度大于3且math列大于60的情况

>>> df[len(df['name']) > 3 and df['math'] > 60]
    name  math  science
2  jiken    61       89
4   json    83       12
5   dela    96       67
6  rison    90       34

2、定义一个函数,做更复杂的处理,当然,函数的值应该返回Boolean类型

>>> def getResult(df):
	return len(df['name']) > 0 and df['math'] > 60

>>> df[lambda x : getResult(x)]
    name  math  science
2  jiken    61       89
4   json    83       12
5   dela    96       67
6  rison    90       34

3、使用isin()方法,该方法接受一个列表,用于获取某些列需要指定一些值的情况

# 指定name必须包含dela选项
>>> df[df['name'].isin(['dela'])]
   name  math  science
5  dela    96       67

4、以上对于iloc[]以及loc[]方法同样有效

>>> df.loc[lambda x : getResult(x)]
    name  math  science
2  jiken    61       89
4   json    83       12j
5   dela    96       67
6  rison    90       34
>>> df.loc[lambda x : getResult(x), ['science']]
   science
2       89
4       12
5       67
6       34

哈哈,以上就是今天的内容,有兴趣可以关注我的公众号:python小工具。让我们一起为实现高效率办公努力。
python使用pandas中获取Excel表中的数据(三)_第1张图片

你可能感兴趣的:(python使用pandas中获取Excel表中的数据(三))