一 . 根據列條件,獲取行索引號並轉成列表
import pandas as pd df = pd.DataFrame({'BoolCol': [1, 2, 3, 3, 4],'attr': [22, 33, 22, 44, 66]}, index=[10,20,30,40,50]) print(df) a = df[(df.BoolCol==3)&(df.attr==22)].index.tolist() print(a)
查找 BoolCol = 3 和 attr = 22 的數據
# 結果 BoolCol attr 10 1 22 20 2 33 30 3 22 40 3 44 50 4 66 [30]
注意:
df[(df.BoolCol==3)&(df.attr==22)].index返回的是index對象列表,需轉換為普通列表格式時用tolist()方法
二 . 根據列條件,選取dataframe數據框中的數據
# 選取等於某些值的行記錄 用 == df.loc[df['column_name'] == some_value] # 選取某列是否是某一類型的數值 用 isin df.loc[df['column_name'].isin(some_values)] # 多種條件的選取 用 & df.loc[(df['column'] == some_value) & df['other_column'].isin(some_values)] # 選取不等於某些值的行記錄 用 != df.loc[df['column_name'] != some_value] # isin返回一系列的數值,如果要選擇不符合這個條件的數值使用~ df.loc[~df['column_name'].isin(some_values)]