pandas常用方法
1.排序
df_all.sort_values(by=['用户名','日期'], ascending=False)
2.两个dataframe合并,参数:on用哪个字段连接,how连接方式(默认inner,其余的可选left,outer,right), 若没有共同的字段,left_on=左连接字段,right_on=右连接字段
df_all=pd.merge(df_1,df_2,on=["per_date",'user_name'], how="outer")
3.pandas读取数据库
from sqlalchemy import create_engine
def my_engine():
#: id , 端口 , 用户名,密码
return create_engine('mysql+pymysql://%s:%s@%s:%s/%s' % (user,pwd,host,port,DB))
df=pd.read_sql(sql,my_engine())
4.保存到excel或数据库
df.to_excel('path.xlsx',index=False)
df.to_csv('path.csv',index=False)
5.重命名
df.rename(columns={'name':'name1'},inplace=True) # 重命名
6.数据类型转变
df.astype({'列1':'float','列2':'int'})
df[列1].astype('int')
df[列1].astype('str')
5.保存到mysql数据库
方法一:
df.to_sql(sql,my_engine())
方法二:
data=df.values.tolist()
sql_save = """insert into bi.r_expert_title(id,expert_id)
values(%s,%s)
"""
#大量数据保存到数据库,分成10000个记录提交一次,禁止把过多的数据一次提交给数据库
def save_DB(sql, all_data):
sig = 0
list1 = []
for i in all_data:
sig += 1
list1.append(i)
if sig == 10000:
print(sig)
sig = 0
self.cs.executemany(sql, list1)
self.conn.commit()
list1 = []
if len(list1) > 0:
self.cs.executemany(sql, list1)
self.conn.commit()
浙公网安备 33010602011771号