Pandas的筛选
1 | import pandas as pd |
1 | url = "http://www.51chanlun.com/hot.html" |
筛选
以网络获取的股票热点板块数据举例
1 | cols = df.columns |
Output:
单个条件
简单筛选
某列的值满足条件
1 | df[df["新高个股数"] >= 3] |
Output:
map 函数
1 | df[df["新高个股数"].map(lambda x: x >= 3)] |
Output:
query方法
1 | df.query("新高个股数>=3") |
Output:
多条件筛选
简单筛选
- 每个条件要用括号包含起来
- 条件与条件之间用连接符 “|”: 或 , “&”:与
1 | df[(df["新高个股数"]>=3) | (df["板块强弱指标"]>=4) ] |
Output:
1 | df[(df["新高个股数"]>=3) & (df["板块强弱指标"]>=4) ] |
Output:
map函数
1 | tj1 = df["新高个股数"].map(lambda x: x >= 3) |
Output:
1 | df[tj1 & tj2] |
Output:
query方法
1 | df.query("新高个股数>=3 & 板块强弱指标>=4") |
Output:
同列多条件
.isin() 及反选
1 | tj=["医药","医疗保健","互联网","有色","软件服务"] |
Output:
1 | df[~df["概念类别"].isin(tj)] |
Output:
.str.contains()及反选
1 | df[df["概念类别"].str.contains("医药|工业机械|汽车类|家居用品")] |
Output:
1 | df[~df["概念类别"].str.contains("医药|工业机械|汽车类|家居用品")] |
Output:
同条件对多列筛选
1 | ''' 每一列的数据中不包含0 和"N" ''' |
' 每一列的数据中不包含0 和"N" '
Output: