sql语句的pandas实现
张文政
2020年6月21日
sql是数据库的语言,可以方便地进行各种增、删、改、查操作,其中的group、join、where等操作更是十分方便。pandas是python的一个数据分析库,以dataframe的格式保存表格数据。那如何像sql操作数据库一样地操作pandas的dataframe,就是一个很有意义的问题。对于将来的办公自动化也很有帮助。
数据库中最重要的建是主键,用于唯一标识表中的一条记录;pandas中默认的主键是行index。
1. pandas基本操作
# 创建一个toydataframe
import pandas as pd
df = pd.DataFrame({
'total_bill': [16.99, 10.34, 23.68, 23.68, 24.59],
'tip': [1.01, 1.66, 3.50, 3.31, 3.61],
'sex': ['Female', 'Male', 'Male', 'Male', 'Female']})
df # 1. 打印dataframe的情况,一般用head()
df.dtypes # 2. 打印每列的数据类型,str在dataframe中是object类型
# total_bill float64
# tip float64
# sex object
# dtype: object
df.columns # 3. 打印字段名
# Index(['total_bill', 'tip', 'sex'], dtype='object')
df.shape # 打印表格行数与列数 (5,3)
df.values # 转换成numpy.array
total_bill | tip | sex | |
---|---|---|---|
0 | 16.99 | 1.01 | Female |
1 | 10.34 | 1.66 | Male |
2 | 23.68 | 3.50 | Male |
3 | 23.68 | 3.31 | Male |
4 | 24.59 | 3.61 | Female |
2. sql语句与pandas的对应
介绍select,where,group,as,join,order的用法。
- SELECT
select负责从表中选取数据。语法为:SELECT colname FROM tablename
选取多行多列时,使用Dataframe的loc和iloc方法。其中loc根据列名,行indexlist或