1 读取数据库表:pymysql.connect; pd.read_sql
# 一次连接多个前缀相同的数据库表;pymysql.connect
import pymysql
coon=pymysql.connect(host="",user="root",passwd="",db="")
for i in range(1,10,1):
finattprice_2019_="finattprice_2019_"+str(i)
sql="select * from"+" "+finattprice_2019_
finattprice_=pd.DataFrame(pd.read_sql(sql,coon)
写入数据库:create_engine;pd.io.sql.to_sql
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://root:password@localhost:3306/spider_data?charset=utf8')
pd.io.sql.to_sql(spider_quchong,'car_autohome_quchong1', engine,schema='spider_data',if_exists='append')
2 列名所在第几列 list()、 index()
columnslist=list(df.columns)
columnslist.index("TrimID")
3 重命名:
.rename inplace=True; 变量名可以是动态的变量
df.rename(columns={'a':a_,"b":"b_"},inplace=True)
注意:a_ 与 " b_" 的区别; inplace=True
4 排序:
sort_values(by = [ ],ascending =True,inplace=True)
spider_99.sort_values(by = ["publishdate"],ascending =True,inplace=True)
去重:
.drop_duplicates([‘a’,‘b’c’],keep=‘first’)
spider_quchong=spider_zong.drop_duplicates(['TrimId','ProvinceId','CityId','Mileage','purchasedate','DisplayPrice'],keep='first')
4 字符串和数字拼接成新变量名
for i in range(1,10,1):
finattprice_2019_="finattprice_2019_"+str(i)
5 两个df 的横向连接匹配: pd.merge:on=; how=""
两个df 的纵向连接: pd.concat
finattprice = pd.merge(finattprice, finattprice_, on='TrimID',how='left')
df_zong=pd.concat([df1,df2])
6 df 使用apply函数, axis=1
df[rate_]= df.apply(lambda x:"%.2f%%"%((x[a]/x[b]-1)*100),axis=1)
7 小数转化成百分之数 “%.2f%%” %(a)
"%.2f%%"%((0.1458)*100)
转化为两位小数
y="%.2f"%(2/3)
注意:%.2f 2位浮点型数值
8 连接数据库:pymysql
coon=pymysql.connect(host,user,passwd,db)
pd.read_sql(select * from a,coon)
9 时间类型取 年 月 a.year a.month
字符连接成日期: import parse
from dateutil.parser import parse
parse(str(x["Y"])+"06"+"01")
10 以e为底
np.e**(x)
11 更改列名顺序 list.insert、 list.pop
columns=list(vehicle.columns)
columns.insert(columns.index('fadongji'),columns.pop(columns.index( 'NCMSRP_adj')))
vehicle=vehicle.loc[:,columns]
12 if a==“egb” or a==“bgfng”
def ncmsrp_adj_h (PropulsionSystemDesign,ncmsrp):
if PropulsionSystemDesign=="BEV" or PropulsionSystemDesign=="插电混动":
y= ncmsrp
elif PropulsionSystemDesign=="ICE" or PropulsionSystemDesign== "弱混":
y=(ncmsrp/1.13)*1.1
else:
y=np.nan
return y