【python】pandas基础总结

目录


1 使用pandas读取写入csv, tsv文件数据 #read_excel #read_csv #to_excel #to_csv

pandas库可以使用numpy的库的内容

安装pandas

pip install pandas
pip install openpyxl

导入pandas

import pandas as pd

读取到的表数据类型为DataFrame

windows路径\要改成/,如D:\要改成E:\

dfa = pd.read_excel('E:/system_files/Desktop/6月品牌_qbt.xlsx') # 读取表
dfa.to_excel('E:/system_files/Desktop/6月品牌_qbt.xlsx') # 输出表
dfa.to_excel('E:/system_files/Desktop/6月品牌_qbt.xlsx',index=False) # 不输出索引index

2 pandas操作数据库

pip install PyMySQL
pip install pandas
pip install sqlalchemy
pip install openpyxl
from sqlalchemy import create_engine    
import pandas as pd

engine = create_engine('mysql+pymysql://apollo-rw:QBT094bt@localhost:2039')

sql = '''
SELECT MID as 'ali22_2 mid', COUNT(*)
FROM apollo.member_login
WHERE MID IN (select *
              from test_my.ali22)
  AND created >= '2022-02-01'
  AND created < '2022-03-01'
  AND is_login = 1
GROUP BY MID;
'''

ali22_2 = pd.read_sql_query(sql, engine)

3 #Series 一维数组

3.1 创建Series

series是dataframe的其中一列,一个series就是一列(series自带索引列,和数值、数值列表不同)

3.1.1 用列表创建Series #list

3.1.2 用字典创建Series #dict

3.2 操作Series

3.3 Series支持下标、切片

4 #DataFrame 二维数组

4.1 创建DataFrame

4.2 获取行和列 #todo

4.3 操作二维表

4.3.1 删除指定行、指定列 #drop

axis 不会改变原表数据

删除指定列:

4.3.1.1 直接对原表操作

注意:inplace=True 会删除原表的数据

4.3.2 行列转置 #stack #unstack #转置 #dropna

da.stack(dropna=False).unstack(0)

4.3.3 字段排序 #sort_values

4.3.4 修改列值,添加列 #Series

即修改或添加series

4.3.5 复制表 #copy

4.3.6 查看表信息 #info #index #columns #describe

4.3.6.1 修改列名

4.3.7 #head #tail 看前面和后面部分的记录

4.3.8 #unique #nunique 唯一值

unique只能用于单列

4.3.9 #count #value_counts 非空记录数

4.3.10 统计每列的空值数 #NULL #空值 #isnull

info() 能查看每列的非空字段数

4.3.11 填充空值 #fillna #空值 #null

4.3.12 替换指定值,填充空值 #replace #nan

需要引入import numpy as np

4.3.13 删掉有空值的记录 #dropna

4.4 查询二维表

4.4.1 查询表中指定的记录 #索引 #loc #iloc

4.4.1.1 条件查询

4.4.1.1.1 条件查询实现in和not in #isin #in

4.4.1.2 例子:loc,iloc切片查询


4.4.1.3 例子:loc,iloc查询

4.4.2 排除指定列conc

5 #concat 合并表 #合并

concat只有两种表连接方式: 上下合并左右合并

5.1 上下合并,默认值

concat擅长上下合并记录
concat可以一次拼接多个表,放入参数列表即可

5.1.1 上下合并后,重建索引 #reset_index

如果不改变原表,使用:da.reset_index(drop=True)
如果要操作原表,使用:da.reset_index(inplace= True,drop=True)

方式一:

5.2 左右合并


使用keys后,列名会改变,不建议使用keys

5.2.1 重建索引,消除索引对concat的影响

注意:左右合并时,两张表的索引不同,对concat有影响,可以通过重建索引,来消除索引的影响
(索引不同,对merge无影响)

6 #merge 合并表 #合并

merge 适合左右合并的情况

两张表的索引不同,会逐行根据key进行merge操作

6.1 指定左右表的列进行合并 #left_on #right_on

6.2 merge的4种连接方式 #how

6.2.1 #inner 内连接,key列的的交集

6.2.2 #outer 外连接,key列的并集

6.2.3 #left 左连接,使用左边的key列

类似于mysql的left join,只要左表的key

6.2.4 #right 右连接,使用右边的key列

类似于mysql的 right join,只要右表的key

6.3 例子

6.3.1 自定义表列顺序 #reindex

6.3.2 输出表数据为excel

7 #分组 #groupby

7.1 多字段分组

7.2 #聚合函数 #agg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值