Pandas(第十八集:DataFrame数据加载)


"""
Pandas加载数据
CSV数据
Excel数据
MySQL数据库数据
"""
import os

import numpy as np
import pandas as pd
from sqlalchemy import create_engine

print("========================= 源数据 ============================")
data = np.random.randint(0, 50, size=(10, 5))
df = pd.DataFrame(data=data, columns=["Python", "Java", "PHP", "NumPy", "Pandas"])
df2 = df.copy()
print(df)

path = os.path.dirname(os.path.abspath(__file__)) + "\\data\\"
fileName = "data.csv"
path_name = os.path.join(path, fileName)

print("========================= 1.df.to_csv()将数据保存到CSV文件当中 ============================")
"""
path_or_buf:文件存放路径+文件名
sep:数据之间的分隔符,默认是逗号(,)
header:是否保留列索引
index:是否保留行索引
"""
df.to_csv(path_or_buf=path_name, sep=",", header=True, index=False)

print("========================= 2.pd.read_csv()加载CSV文件当中的数据 ============================")
"""
filepath_or_buffer:文件路径+文件名
sep:数据之间的分隔符,默认是逗号(,)
header:设置列索引,默认采用第一行作为列索引
index_col:设置行索引,不设置会自动生成01234格式
"""
df = pd.read_csv(filepath_or_buffer=path_name, sep=",", header=[0])
print(df, type(df), df.shape)

print("========================= 3.pd.read_table()加载CSV文件当中的数据【作用与read_csv()相似】 ============================")
"""
sep:数据之间的分隔符,默认是table键("\t")
"""
df = pd.read_table(filepath_or_buffer=path_name, sep=",", header=[0])
print(df)

fileName = "data.xlsx"
path_name = os.path.join(path, fileName)
print("========================= 4.df.to_excel()将数据保存到excel文件当中 ============================")
"""
excel_writer:文件路径+文件名
sheet_name:工作表名称
header:是否保留列索引
index:是否保留行索引
"""
df2.to_excel(excel_writer=path_name, sheet_name="Sheet1", header=True, index=False)

print("========================= 5.pd.read_excel()将数据保存到excel文件当中 ============================")
"""
io:文件路径+文件名
sheet_name:工作表名称【可以写名称也可以写下标,从0开始】
header:设置列索引,默认采用第一行作为列索引
names:替换列索引,默认会将第一列的数据替换掉
"""
df3 = pd.read_excel(io=path_name, sheet_name="Sheet1", header=[0], names=list('ABCDE'))
print(df3)

print("========================= 源数据 ============================")
# 1.创建数据
data = np.random.randint(0, 150, size=(150, 3))
df = pd.DataFrame(data=data, columns=['Python', 'Pandas', 'PyTorch'])
print(df.head())

# 2.连接数据库
"""
mysql+pymysql  数据库类型+驱动
root:root  数据库的用户名和密码
localhost:3306  数据库地址:端口号
db  数据库名称
"""
conn = create_engine('mysql+pymysql://root:root@localhost:3306/db')
print("========================= 6.df.to_sql()将数据保存到MySQL中 ============================")
"""
name  数据库中的表名
con   数据库连接的对象
index 是否保存行索引
if_exists='append'  如果表存在,向表中追加数据
if_exists='replace' 如果表存在,替换表中的数据

存储到数据库中时,列索引会变成数据库的字段名
"""
df.to_sql(name='score', con=conn, index=False, if_exists='replace')

print("========================= 7.pd.read_sql()从MySQL中加载数据 ============================")
"""
sql  SQL语句
con  数据库连接
index_col  选择某一列作为index
"""
df4 = pd.read_sql(
    sql='select * from score',
    con=conn,
    # index_col='Python'
)
print(df4.head())

"""
TypeError: __init__() got multiple values for argument 'schema'
如果运行过程中出现以上错误,说明Pandas与SQLAlchemy的版本不兼容,降低版本
pip install sqlalchemy==1.4.46 -i https://pypi.tuna.tsinghua.edu.cn/simple
"""



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monly21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值