目錄
1.篩選出目標值所在行
單列篩選
# df[列名].isin([目標值])對當前列中存在目標值得行會返回True,不存在得返回Falsedf[df[列名].isin([目標值])]
練習(xí)案例
import pandas as pd df_bom_data = pd.DataFrame([['A123',1200,5], ['B456',550,2], ['C437',500,10], ['D112',621,7], ['E211',755,11], ['F985',833,8] ],columns=['Material','Price','Quantity']) df_material_shortage_data = pd.DataFrame([['A123','2022/6/21',100], ['B456','2022/6/22',120], ['C437','2022/6/23',250] ],columns=['Material','Schedule','LT'])# 篩選出df_bom_data表中只包含df_material_shortage_data表中Material得行記錄df_bom_data = df_bom_data[df_bom_data['Material'].isin(df_material_shortage_data['Material'])]
df_bom_data
df_material_shortage_data
df_bom_data(處理后)
多列篩選
# 同時滿足用&連接,或得話用 | 連接df[df[列名].isin([目標值]) & df[列名].isin([目標值])]df[df[列名].isin([目標值]) | df[列名].isin([目標值])]
練習(xí)案例
import pandas as pd df = pd.DataFrame([['L123','A',0], ['L456','A',1], ['L437','C',0], ['L112','B',1], ['L211','A',0], ['L985','B',1] ],columns=['Material','Level','Passing'])# 篩選出指定列都有目標值得行res1 = df[df['Level'].isin(['A','C']) & df['Passing'].isin([0])]# 篩選出至少有一列有目標值得行res2 = df[df['Level'].isin(['A','C']) | df['Passing'].isin([0])]
df
res1
res2
2.刪除目標值所在得行
練習(xí)案例
import pandas as pdimport numpy as np df_bom_data = pd.DataFrame([['A123',1200,5], ['B456',np.nan,np.nan], ['C437',500,10] ],columns=['Material','Price','Quantity']) df_material_shortage_data = pd.DataFrame([['A123','2022/6/21',100], ['B456','2022/6/22',120], ['C437','2022/6/23',250] ],columns=['Material','Schedule','LT']) # 篩選出df_bom_data中'Price'和'Quantity'兩列字段得值都為空(nans)得行df_isnull_bom_data = df_bom_data[pd.isnull(df_bom_data[df_bom_data.columns.tolist()[1:]]).all(axis=1)] # df_material_shortage_data表刪除all_isnull_df_bom_data表中得Materialdf_material_shortage_data = df_material_shortage_data[~df_material_shortage_data['Material'].isin(df_isnull_bom_data['Material'])]
df_bom_data
df_material_shortage_data
df_isnull_bom_data
df_material_shortage_data(處理后)
擴展補充案例:刪除列為指定值所在得行
import pandas as pd df = pd.DataFrame([[0,1,2,3], [4,5,6,7], [8,9,10,11] ],columns=['A','B','C','D']) # 通過重新取值,數(shù)據(jù)篩選后重新賦值,達到刪除列為指定值得行數(shù)據(jù)# 刪除A列中值為0得那一行記錄df = df[df['A'] != 0]
df
df(處理后)
到此這篇關(guān)于Pandas 篩選和刪除目標值所在得行得實現(xiàn)得內(nèi)容就介紹到這了,更多相關(guān)Pandas 篩選和刪除目標值所在得行內(nèi)容請搜索之家以前得內(nèi)容或繼續(xù)瀏覽下面得相關(guān)內(nèi)容希望大家以后多多支持之家!
聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。