python 个人知识库

本文介绍了使用Python进行数据处理的技巧,包括连接SQL获取数据、Pandas的排序、去重、分组及透视表操作,还涉及日期处理、Excel文件操作、邮件发送、正则表达式应用以及自动化代码执行和圆饼图绘制。此外,还提到了企业微信机器人的配置,展示Python在日常工作中的自动化潜力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

连接SQL&用SQL语句取数

import pymysql
import pandas as pd

date_base=pymysql.connect(host=,
                          port=,
                         user=,
                         password=,
                         database=,
                          charset='utf8')

date=pd.read_sql("""SQL语句""",date_base)

#使用SSH连接数据库
import pymysql
from sshtunnel import SSHTunnelForwarder
 
with SSHTunnelForwarder(
        (IP_B, Port_B),  # 跳板机(堡垒机)B配置
        ssh_password=password_B,
        ssh_username=username_B,
        remote_bind_address=(IP_C, Port_C)) as server:  # 数据库存放服务器C配置
 
    # 打开数据库连接
    db_connect = pymysql.connect(host='',
                                 port=, 
                                 user=,
                                 passwd=,
                                 db=) 

#用元组的方式取出数据
cur = sevend_ku.cursor()
cur.execute(sql)
dbRet = cur.fetchall()

pandas 排序&去重

import pandas as pd

data=pd.DataFrame()
date.sort_values(['columns1','columns2'],ascending=[True,False])
date.drop_duplicates(['columns1','columns2'], 'last')

pandas group by 方法

#使用内置函数进行聚合
dataframe.groupby('columns1').agg({'columns2':['max','min'],'columns3':['mean','avg']})

#使用自定义聚合方式进行聚合
#如非重复数值计数
def count_nunique(S):
    return S.nunique()

dataframe.groupby('columns1').agg(count_nunique)

#求和后以万为单位且保留两位小数:
def sum_w(S):
    return round(S.sum()/10000,2)

dataframe.groupby('columns1').agg(sum_w)

#定义匿名函数实现聚合后求极差的方法:

df.loc[:,["average_monthly_hours","department"]].groupby("department")["average_monthly_hours"].apply(lambda x:x.max()-x.min())

pandas 透视表及自定义聚合方法的运用

#透视表
data_pt=pd.pivot_table(原始数据,index=['纵坐标1','纵坐标2'],columns='横坐标',values='值',aggfunc=聚合方式,fill_value=空值填充方式,margins=True)

#自定义聚合方式
def sum_w(S):
    return str(round(S.sum()/10000,2))+'w'
 
pd.pivot_table(result,index=['催收结果'],values=['remain_principal','order_no'],aggfunc={'remain_principal':sum_w,'order_no':'count'},fill_value=None,margins=True)

#将透视表中的数据转换成百分比
collect_total_pt11=collect_total_pt1.copy()
for col_name in collect_total_pt11.columns[2:]:
    collect_total_pt11[col_name]=collect_total_pt11[col_name]/collect_total_pt11.loc[12,col_name]
    collect_total_pt11[col_name]=collect_total_pt11[col_name].apply(lambda x:format(x,'.2%'))

日期操作

#日期的输入
from datetime import datetime
date=datetime(2019,5,30)

#任意日期加上指定天数
date+pd.to_timedelta("
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值