iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0
AI & Data

資料三十-那些最基本的資料處理與分析技能系列 第 7

【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")

上一篇
【Day06-合併】發動魔法卡,融合——在python中如何合併list, dict, set, np.array, pd.DataFrame?
下一篇
【Day08-比較】我們不一樣——在python中判斷相等的用法is, ==, 與如何判斷nan
系列文
資料三十-那些最基本的資料處理與分析技能30

1 則留言

0
WeiYuan
iT邦新手 4 級 ‧ 2021-09-22 23:20:27

為什麼「全都要」是這張圖?

owo iT邦新手 5 級 ‧ 2021-09-23 00:34:26 檢舉

最初是九品芝麻官的那一幕
結果後來就開始抽象化的過程XD

https://jikipedia.com/definition/1069903267?action=%5Bobject%20PointerEvent%5D

WeiYuan iT邦新手 4 級 ‧ 2021-09-23 00:59:11 檢舉

... 我果然老了

owo iT邦新手 5 級 ‧ 2021-09-23 22:59:45 檢舉

啊其實我覺得這個梗應該才算是比較老吧XD
我之前去補習班教高中生結果發現現在的小孩已經都沒怎麼看過周星馳的電影了?

我要留言

立即登入留言