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''' )
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值