pandas学习总结系列(四)

pandas

query

  • 比较符号
    data = [{'name':'qqq','age':11},{'name':'www','age':22},{'name':'eee','age':33},{'name':'rrr','age':44}]
    df = pd.DataFrame(data)  #1
    print(df[df['age']>22])   #2  
    -----------------------
    
    1和2的结果是一样的。query可以用更复杂的查找。比如
  • 逻辑
    df.query('a < b < c')
    df.query('a < b & b < c')
    
    中间的逻辑符号也可以用and来代替
  • in 和 not in
    print(df.query('age not in level'))
    
duplicated (处理重复数据)

对于重复数据可以查看是否重复,除了第一次出现的。第一次都视为没有重复。

df2.duplicated('a', keep=False)
---------------
0     True
1     True
2     True
3     True
4     True
5    False
6    False

删除重复数据

df2.drop_duplicates('a')

默认为保留第一次出现的。keep参数last,保留最后一次的。为False全部删除。
里面的参数也可以是一个列表
比如[‘a’,‘b’]表示a和b是一个组。他们两个一起没有重复的

多个表处理
  • 合并
df1 = ....
df2 = ....
df3 = ....
all = [df1,df2,df3]
result = df.concat(all)

默认是将行合并起来,设置参数axis=1,合并为列

  • 联合查询
    类似于sql里面的join语法。
left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                      'A': ['A0', 'A1', 'A2', 'A3'],
                        'B': ['B0', 'B1', 'B2', 'B3']})

right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                        'C': ['C0', 'C1', 'C2', 'C3'],
                        'D': ['D0', 'D1', 'D2', 'D3']})

result = pd.merge(left, right, on='key',how='left')

参数解析:left和right为要联合的表。on是要关联的键,可以理解为excel里面的vlooup函数。how是如何关联。默认为inline,是去两个表的公共值。也可以是left,right,outer(并集)。和sql里面左连接,右链接,内连接类似。

也可以可以使用join

left = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                        'B': ['B0', 'B1', 'B2']},
                   index=['K0', 'K1', 'K2'])


right = pd.DataFrame({'C': ['C0', 'C2', 'C3'],
                       'D': ['D0', 'D2', 'D3']},
                         index=['K0', 'K2', 'K3'])
result = left.join(right,how='outer')

join是根据索引来进行合并的。
left 以left索引为主。
outer 取并集
inner 取交集
joinmerge。merge是根据column也就是列来提取匹配结果。join是根据index,也就是索引,也就是行来提取匹配的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值