一切为了方便!!!
目录
目录
一、解决pandas列名显示省略问题。
"""---------------解决pandas列名显示不全问题------------"""
"""------------以下行列显示可根据自己要求修改----------"""
#显示所有列
pd.set_option("display.max_columns",None)
#显示所有行
pd.set_option("display.max_rows",None)
#设置values的显示长度为100,默认是50
pd.set_option("display.max_colwidth",100)
二、连接和读取MySQL数据
#导入pymysql模块
import pymysql
#连接数据库
db=pymysql.connect(host="ifas.……com.cn",
port=3306,user="user",passwd="123456789",db="mysql")
#方法一:读取数据库数据集
sql="select * from apply_info"
def get_f_from_db(sql):
cursor=db.cursor()
cursor.execute(sql)
data=cursor.fetchall()
colum_des=cursor.description
column_names=[colum_des[i][0] for i in range(len(colum_des))]
f=pd.DataFrame([list(i) for i in data],columns=column_names)
return f
get_f_from_db(sql)
"""————————读取数据库数据方法对比————————"""
#方法二:读取数据库数据;
sql="select * from apply_info"
df=pd.read_sql(sql,db)
三、f.to_csv()中文乱码解决方法
a11.to_csv("C:/Users/hhq/Desktop/a11.csv",encoding="utf_8_sig")#避免中文输出乱码
四、pandas删除列
f.drop(['a','b'],axis=1,inplace=True)#暴力删除法
五、类似sas中lag的功能
df['b1']=df.groupby('a')['b'].shift(1)
六、条件赋值
def func(a,b,c):
if a=='1' or b=='2':
return 'A'
elif a=='3' and c=='3':
return 'B'
else:
return 'C'
df['new_value']=df.apply(lambda x: func(x.a,x.b,x.c),axis=1)
七、条件正反向筛选
#条件筛选——在函数前面加上【~】为反向筛选;
#正向筛选;
df=f[f.BRANCH_NAME.isin(["代理门店","电销组"])]
#反向筛选;
df=f[~f.BRANCH_NAME.isin(["代理门店","电销组"])]
八、查看所有列和类型
#查看所有列及其类型;
cols=df.columns
for col in cols:
print(col+":"+str(df[col].dtype))
九、eval列运算
eval()函数——注:多个列运算并生成多个新列
#多个列运算,并生成多个新的列
data_col.eval("""null_rate=col_null/(col_null+col_d)
total=col_null+col_d""").head(20)