中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pandas多個條件中怎么提取行

發布時間:2023-02-22 11:21:36 來源:億速云 閱讀:115 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Pandas多個條件中怎么提取行”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Pandas多個條件中怎么提取行”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

使用Pandas從多個條件(AND,OR,NOT)中提取行的方法。

有以下2點需要注意:

  • &,|,?的使用(and、or、not的錯誤)

  • 使用比較運算符時,請將每個條件括在括號中。

以下數據為例。

import pandas as pd

df = pd.read_csv('./data/09/sample_pandas_normal.csv')
print(df)
#       name  age state  point
# 0    Alice   24    NY     64
# 1      Bob   42    CA     92
# 2  Charlie   18    CA     70
# 3     Dave   68    TX     70
# 4    Ellen   24    CA     88
# 5    Frank   30    NY     57

本例是使用pandas.DataFrame,但pandas.Series也同樣適用。

如何提取(選擇)行

首先,展示如何從pandas.DataFrame中提取(選擇)行以獲得新的pandas.DataFrame。

使用布爾列表(數組)或pandas.Series,只能提取(選擇)True行。

mask = [True, False, True, False, True, False]
df_mask = df[mask]
print(df_mask)
#       name  age state  point
# 0    Alice   24    NY     64
# 2  Charlie   18    CA     70
# 4    Ellen   24    CA     88

通過AND,OR,NOT多個條件提取(選擇)行的代碼-示例

具有兩個條件值的pandas.Series,可以使用&獲得如下結果。在這里,為了便于說明,將==和?用作二個條件,但是僅使用!=也是可以。

print(df['age'] < 35)
# 0     True
# 1    False
# 2     True
# 3    False
# 4     True
# 5     True
# Name: age, dtype: bool

print(~(df['state'] == 'NY'))
# 0    False
# 1     True
# 2     True
# 3     True
# 4     True
# 5    False
# Name: state, dtype: bool

print((df['age'] < 35) & ~(df['state'] == 'NY'))
# 0    False
# 1    False
# 2     True
# 3    False
# 4     True
# 5    False
# dtype: bool

僅提取(選擇)True行。

df_and = df[(df['age'] < 35) & ~(df['state'] == 'NY')]
print(df_and)
#       name  age state  point
# 2  Charlie   18    CA     70
# 4    Ellen   24    CA     88

對于OR也是如此。使用|。

print((df['age'] < 20) | (df['point'] > 90))
# 0    False
# 1     True
# 2     True
# 3    False
# 4    False
# 5    False
# dtype: bool

df_or = df[(df['age'] < 20) | (df['point'] > 90)]
print(df_or)
#       name  age state  point
# 1      Bob   42    CA     92
# 2  Charlie   18    CA     70

3個以上條件的運算符的優先級

運算符的優先級是NOT(?),AND(&),OR(|)。因此,結果因順序而異。

df_multi_1 = df[(df['age'] < 35) | ~(df['state'] == 'NY') & (df['point'] < 75)]
print(df_multi_1)
#       name  age state  point
# 0    Alice   24    NY     64
# 2  Charlie   18    CA     70
# 3     Dave   68    TX     70
# 4    Ellen   24    CA     88
# 5    Frank   30    NY     57

df_multi_2 = df[(df['age'] < 35) & (df['point'] < 75) | ~(df['state'] == 'NY')]
print(df_multi_2)
#       name  age state  point
# 0    Alice   24    NY     64
# 1      Bob   42    CA     92
# 2  Charlie   18    CA     70
# 3     Dave   68    TX     70
# 4    Ellen   24    CA     88
# 5    Frank   30    NY     57

將每個組括在括號中比較安全。

df_multi_3 = df[((df['age'] < 35) | ~(df['state'] == 'NY')) & (df['point'] < 75)]
print(df_multi_3)
#       name  age state  point
# 0    Alice   24    NY     64
# 2  Charlie   18    CA     70
# 3     Dave   68    TX     70
# 5    Frank   30    NY     57

讀到這里,這篇“Pandas多個條件中怎么提取行”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇赉县| 文水县| 张掖市| 五莲县| 伊金霍洛旗| 东台市| 平山县| 桑日县| 济南市| 哈密市| 垫江县| 山阴县| 临湘市| 阿合奇县| 当阳市| 昭苏县| 新建县| 仁寿县| 饶阳县| 乌兰察布市| 湖州市| 邹城市| 来宾市| 天峻县| 宝鸡市| 乡城县| 社旗县| 沅江市| 江阴市| 永和县| 城口县| 永嘉县| 砚山县| 莒南县| 乌拉特前旗| 银川市| 池州市| 桃园县| 霍邱县| 平武县| 怀宁县|