跳转到主要内容

pandas && 强大的数据操作处理程序

安装


pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

# excel支持
pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install xlsxwriter  -i https://pypi.tuna.tsinghua.edu.cn/simple

连接到数据

支持读取多张数据:CSV,JSON,Excel,mysql等。

具体可以参考:https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html

api设计的非常简洁:

  • 读取:read_csv , read_json , read_excel,read_sql
  • 写入:to_csv , to_json,to_excel , to_sql
连接到mysql

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simple 



# 增加pandas库的导入
import pandas as pd

# 添加SQLAlchemy的导入
from sqlalchemy import create_engine

# 示例用法
if True:
    engine = create_engine(
        "mysql+pymysql://root:password@192.168.0.10:33318/renren_cloud_basic"
    )
    query = "SELECT * FROM park_user"
    # 使用chunksize参数来实现流式处理
    df = pd.read_sql(query, engine)
    # 显示数据的结构和数据类型
    print(df.info())
    # 显示列名
    print(df.columns)



连接到mysql的额外操作
  • read_sql_table(table_name,connection)
  • read_sql_query(sql,connection)
  • read_sql(sql,connection)

操作数据

  • 获取数据形状

row_size, col_size = grouped.shape
log.info(f"row_size:{row_size},col_size:{col_size}")

# row_size:13,col_size:7
  • 数据清洗:提取数据到新的列

# 将月份列提取为年
dataFrame["年份"] = pd.to_datetime(dataFrame["月份"]).dt.year

  • 数据清洗:清洗空值

  • 数据清洗:清洗格式错误数据

  • 数据清洗:清洗错误数据

  • 数据清洗:清洗重复数据

  • 分组聚合


grouped = (
    dataFrame.groupby(["客户名称", "合同编号", "年份"])
    .agg(
        {
            "减免总金额": "sum",
            "政策减免金额": "sum",
            "运营减免金额": "sum",
            "其他减免金额": "sum",
        }
    )
    .reset_index()  # 使分组变成一个平面
)

# 设置索引列的名称为“序号”
grouped.index.name = "序号"

  • 筛选数据

# 提取整列数据
print(grouped["客户名称"])


# # 筛选客户名称列数据
print(grouped[grouped["客户名称"] == "山东智拓大数据有限公司"])