天天看點

pandas 資料比對

問題:df1與另一個亂序df2判斷是否一緻

1,進行資料比對

  • merge
  • 統一排序
  • category
# merge
df_load.columns = df_my.columns
s_index = df_load['産品名稱']
df_my_compare = pd.merge(s_index,df_my,on='産品名稱')

#統一排序
df_loadcolumns = df_my.columns
df_load = df_load.sort_values(by=['産品名稱'],ascending=True)
df_my = df_my.sort_values(by=['産品名稱'],ascending=True)
           
df_load = df_load.reset_index(drop=True)
df_my = df_my.reset_index(drop=True)

           

2,資料比對

  • df1 == df2 每個元素對應位置比較,傳回 n*m的TF矩陣
  • df1.eq(df2) 每個元素對應位置比較
  • df1.equals(df2) 如果全部相等,傳回true
eq,ne,le,lt,ge,gt 等效于==,=!,<=,<,> =,>

3,按條件取行

df.loc[df.行.isin(一個list),'列名']
df.loc[~df.行.isin(一個list),'列名']

           

4,多條件取行 – query

test = pd.DataFrame({'a':[1,2,3,4],'b':[2,2,2,2],'c':[4,3,2,1],'d':[1,1,1,1],'e':['a','b','c','d']})
a = test.query('''1<a<4 and 2<c<4 and 'b' in e''' )