DataFrame(7):DataFrame運算——邏輯運算


1、DataFrame邏輯運算

  • 邏輯運算符號:>  >=   <   <=   ==   !=
  • 復合邏輯運算符:&   |   ~
  • 邏輯運算函數:query()、isin()、between()
  • 邏輯運算的作用:利用邏輯運算,用於篩選數據(很重要)

2、原始數據文件

下載鏈接:

https://alltodata.cowtransfer.com/s/61ac037949ee4d

讀取數據:

df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx")
display(df)

結果如下:
                

3、邏輯運算符的案例說明

1)篩選出“數學成績大於等於60並且英語成績大於等於70”的記錄

df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx")
display(df)

x = (df["數學"]>=60) & (df["英語"]>=70)
display(x)

df1 = df[(df["數學"]>=60) & (df["英語"]>=70)]
display(df1)

結果如下:
                

2)篩選出“語文成績小於60或者數學成績大於80”的記錄

df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx")
display(df)

x = (df["語文"]<60) | (df["數學"]>80)
display(x)

df1 = df[(df["語文"]<60) | (df["數學"]>80)]
display(df1)

結果如下:
                

3)篩選出“語文成績里面的非空記錄”的記錄

(這種方式很重要)

# 自己在原始數據中,任意刪除三個值,重新讀取即可
df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx")
display(df)

x = df["語文"].isnull()
display(x)
y = ~df["語文"].isnull()
display(y)

df1 = df[~df["語文"].isnull()]
display(df1)

結果如下:
                

注意:isnull()判斷某個值是否為空,如果是返回True,否則返回False。

4、邏輯運算函數:query()、isin()、between()

1)query()函數:能夠簡化查詢代碼,很好用

df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx")
display(df)

df1 = df.query("語文>=60")
df1

df1 = df.query("語文>=60 & 數學>=60")
df1

結果如下:
                

2)isin()函數:查看df中是否某含某個值或者某些值

① isin()函數說明

使用isin()函數,不僅可以針對整個df操作,也可以針對df中的某一列(Series)操作,但是針對Series的操作才是最常用的。

② 利用isin()判斷整個df中是否包含某個值或某些值(了解)

df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx")
display(df)

df.isin(["60","70"])

結果如下:
                

③ 利用isin()判斷df中的某列是否包含某個值或某些值(掌握)

df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx")
display(df)

df["語文"].isin(["37","97"])

df1 = df[df["語文"].isin(["37","97"])]
display(df1)

結果如下:
                

④ 利用isin(),利用df1中的某一列,來對df2中的數據進行過濾(很重要)

df1 = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx",sheet_name=0)
display(df1)

df2 = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx",sheet_name=1)
display(df2)

x = df1["name"].isin(df2["name"])
display(x)

df1[df1["name"].isin(df2["name"])]

結果如下:
                

3)between()函數:返回一個布爾值,即如果在該范圍內,返回True,否則返回False。

df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx",sheet_name=0)
display(df)

df["數學"].between(50,70)
df[df["數學"].between(50,70)]

結果如下:

                

注意:此函數范圍是左閉右閉區間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM