前面两节我们均是通过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小工具。让我们一起为实现高效率办公努力。