"""
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
"""
Pandas(第十八集:DataFrame数据加载)
最新推荐文章于 2024-05-29 12:31:09 发布