Python 个人笔记

一切为了方便!!!

目录

 

目录

一切为了方便!!!

 

一、解决pandas列名显示省略问题。

二、连接和读取MySQL数据

三、f.to_csv()中文乱码解决方法

四、pandas删除列

五、类似sas中lag的功能

六、条件赋值

七、条件正反向筛选

八、查看所有列和类型

九、eval列运算

 




一、解决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)

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值