pandas 笔记

一、读写不同数据源的数据
1.1 读写数据库数据

数据库产品名+连接工具名字://用户名: 密码@数据库ip地址:数据库端口号/数据库名称?charset = “utf-8”

1、 需额外导入 SQLAlchemy库
2、与MySQL建立连接需要连接工具 pymysql库, 使用 create_engin() ,建立一个数据库连接对象

engine = create_engine("mysql+pymysql://root:xxxxx@localhost:3306/test?charset=utf8")

1 读取表 or 查询
pd.read_sql("*****", con = engine)
data = pd.read_sql("select * from job where rate = 20", con = engine ) 
返回 DataFrame 对象

2 写入mysql
pd.to_sql("*****", con = engine)
data.to_sql("tmp", con = engine, if_exists = "repalace or fail", index = F)
index 代表是否将行索引 传入数据库,默认T
1.2 读写文本文件 txt ,csv

主要区别就是 分隔符 吧

1  pd.read_table(path, sep = "\t", header = 'infer')  # infer表示表头自动识别
2  pd.read_csv(path, sep = ",", header = "infer")
data = pd.read_csv("E:/learning_home/tongji/exprement5.csv", encoding="utf8")

data.to_csv(path)
1.3读写excel文件
data = pd.read_excel(path, sheet_name = 0, header = "infer")
data.to_excel(excel_writer = "这个excel", sheet_name)  # sheetname没写默认叫sheet1
如果想往一个excel里面同时写入 多个sheet 用:
with pd.ExcelWriter("这个excel") as w:
	data.to_excel(w, sheet_name = "a")
	data.to_excel(w, sheet_name = "b")
二、DataFrame的常用操作切片

loc可支持列名访问,也可以数字访问, iloc只支持下标访问

data[3:6] # 取3-6行,是dataframe对象
data.iloc[2, 2]    or data.loc[2, "dishes_id"]   # 访问 2, 2 单元
有关 `iloc` 和 `loc` 的索引切片问题,iloc是左闭右开,loc是左右闭
data.iloc[2:5, 2]  vs data.loc[2:5, "dishes_id"]  # 返回2-5行,第2列数据,还是一个dataframe

dataframe修改数据 是在原数据中修改的。

提取 oder_id 为 123 的 oder_name
data2 = data.loc[data["oder_id"] == "123", "oder_name"]
data2["order_id"] = "100"  # 直接 = 修改

为dataframe添加一列,只需要新增一个列索引

data2["sum"] = data2["sal"] * data2["amount"]

删除某一行或列

data2.drop(lables = "sum", axis = 1)
data2.delete["sum"]----倾向于这个,就不用管轴向了
数值型特征统计
data["sum"].mean()
data.describe() #  展示全部信息
类别型特征统计
频数统计
data["dishes_name"].value_counts()
astype方法将目标特征的数据类型转换为 category类别
data["dishes_name"].astype("category").describe()
问题记录:

pandas想获取df的表头名字,df.columns[i] ,得到的每一个是 series,如果我想获取它的名字,不能直接用str().这会把series下面的内容全展示了,而用 series.name属性

三、处理时间序列数据(Pandas继承了Numpy和datetime库的时间相关模块)

时间格式读入的是字符串类型。so we 把 字符串的时间 ------> 标准时间类型

pd.to_datatime("2020-5-20")   # datetime对象
pd.DatetimeIndex(data["use_start_time"])  # 生成索引
pd.PreiodIndex(data["use_start_time"], freq = "S") # 时间段间隔 一定要指定freq参数
Timedelta类 :加减时间操作,时间的平移很方便
data["use_start_time"] + pd.Timedelta(days = 1)

(:以上材料来自视频学习记录

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值