【Python_017】sql语法在pandas中的实现

平时SQL用惯了,用python处理起数据来有些不大顺手,于是整理了一下sql基本常用语法在pandas中的实现。

本篇文章均已以下数据为例演示:
【Python_017】sql语法在pandas中的实现_第1张图片

distinct

  • SQL
    select distinct city from table
    
  • Python
    data['city'].drop_duplicates()
    
    【Python_017】sql语法在pandas中的实现_第2张图片

Group by

  • SQL

    select city, sum(sales) as Q2_sales
    from table
    group by city	
    
  • Python

    data.groupby('city')['sales'].sum().reset_index().rename(columns={'sales':'Q2_sales'})
    

    【Python_017】sql语法在pandas中的实现_第3张图片

Where

定位到某行或多个字段
  • SQL

    select *
    from table
    where month = 202006
    
  • Python

    data[data['month']== 202006 ]
    

    【Python_017】sql语法在pandas中的实现_第4张图片

定位到某个具体的值
  • SQL
    select sales
    from table
    where city='上海' and month = 202005
    
  • Python
    data.[(data['city']=='上海') & (data['month']==202005)]['sales'].values[0]
    
    【Python_017】sql语法在pandas中的实现_第5张图片
where条件中加in
  • SQL
    select *
    from table
    where month in (202005, 202006)
    
  • Python
    data[data['month'].isin([202005,202006])]
    ##若需要not in 则在条件前加-就好
    #data[-data['month'].isin([202005,202006])]
    
    【Python_017】sql语法在pandas中的实现_第6张图片

join

之前整理过一篇 pandas中merge用法, pandas中的merge便和sql中的join是相同效果,在此不多赘述,戳链接就好

Order by

  • SQL

    select *
    from table 
    order by month asc, sales desc
    
  • Python

    data.sort_values(['month','sales'],ascending=[True,False])
    

    【Python_017】sql语法在pandas中的实现_第7张图片

Top

  • SQL

    select top 3 *
    from table
    
  • Python

    data.nsmallest(4,columns=['sales'])
    data.nlargest(4,columns=['sales'])
    

    当然也可以sort_values之后再去head() / tail()
    【Python_017】sql语法在pandas中的实现_第8张图片

你可能感兴趣的:(【Python_017】sql语法在pandas中的实现)