【Day07-筛选】我全都要?啊还是挑一下吧——在python中如何筛选list, dict, pd.DataFrame

有的时候我们处理资料难免会遇到需要筛选的时候
毕竟总不可能随时都一句「我全都要」吧


我全都要(图片来自网路)

因此我们今天来谈一下在python中那些对资料进行筛选的方法

list

# 筛选list-使用列表推导式
list1 = [1,2,3,4,5,6]
list2 = [x for x in list1 if x % 2 == 1] # 筛选奇数元素 
list2 
# [1, 3, 5]
# 筛选list-使用filter()
list1 = [1,2,3,4,5,6]
list2 = list(filter(lambda x : x % 2 == 1, list1)) # 记得要再放进去list()里面才会得到list
list2 
# [1, 3, 5]

dict

# 筛选dict
dict1 = {"a":1, "b":2, "c":3}

# 按key筛选
dict2 = {k:v for k,v in dict1.items() if k in ["a","c"]} # 筛选key是a或c的
dict2
# {'a': 1, 'c': 3}

# 按value筛选
dict3 = {k:v for k,v in dict1.items() if v%2 == 1} # 筛选value是奇数的
dict3
# {'a': 1, 'c': 3}

DataFrame

# 筛选DataFrame
import pandas as pd
df = pd.DataFrame({"a":[1,2,3], "b":[4,5,6], "c":[7,8,9], "d":[True, True,False]})
df

根据列表名称筛选column

# 筛选a,c col
df[["a","c"]]

根据布林值筛选row

# 根据布林col来筛选
df[df["d"]] # 只会取出d-col中为True的结果

isin筛选特定条件

mask = df.isin({"a":[1,3], "b":[4,5], "c":[7,8,9], "d":[True,False]})
mask
df[mask]

依照DataFrame内容文字筛选

df["col_name"].str.contains("some text")

<<:  Day8 Vue Computed vs Method

>>:  离职倒数9天:铺好轨道的人生

30天零负担轻松学会制作APP介面及设计【DAY 14】

大家好,我是YIYI,今天我要来制作日记部分的介面。 如何进入日记页面? 日记的部分是点选像是笔的i...

【Day 04】 Data Analytics Pipeline 对应於 AWS 中的服务 ( 2 )

今天继续针对 Data Analytics Pipeline on AWS 中常见的 AWS 服务来...

Day 14 -资料查询语言 LIKE !

LIKE 运算子搭配 WHERE 子句可以依一特定模式 (Pattern) 为条件来搜寻资料表中的特...

C# web Form web.aspx 跳出提示视窗的4种方法

一般在写ASP.NET是不太希望用 response.write来作页面输出。 因为用respon...

中央状态指挥中心- Vuex [序]

什麽是 Vuex ? 为 Vue.js 开发的状态管理模式,集中管理元件的状态。 像是电商网站中的购...