python pandas库操作Excel,将所有数据存入mysql,写成函数或类
时间: 2024-10-11 09:13:56 浏览: 28
python+Selenium 实现自动化查询问财数据及下载Excel并存入到mysql.zip
Python中的pandas库非常适合处理表格数据,而将数据从Excel文件导入MySQL数据库通常涉及几个步骤:首先读取Excel文件,然后清洗和预处理数据,最后将数据写入MySQL。这可以通过编写一个函数或创建一个类来封装整个过程。
以下是一个简单的示例,展示如何将此功能分解为两个部分:一个函数用于读取Excel并清洗数据,另一个函数负责连接到MySQL并写入数据:
```python
import pandas as pd
import mysql.connector
# 定义读取和清洗数据的函数
def read_excel_clean_data(file_path):
df = pd.read_excel(file_path)
# 假设我们只保留数值列并删除空值
df = df.select_dtypes(include=['number']).dropna()
return df
# 定义连接数据库并写入数据的函数
def write_to_mysql(df, table_name, db_config):
def connect_db(config):
cnx = mysql.connector.connect(**config)
return cnx.cursor()
def close_conn(cnx):
cnx.close()
try:
config = db_config.copy() # 防止修改配置字典
cursor = connect_db(config)
df.to_sql(table_name, con=cursor.connection, if_exists='replace', index=False) # 如果表已存在则替换
cursor.execute("COMMIT")
print("Data written to MySQL successfully.")
except Exception as e:
print(f"Error occurred: {e}")
cursor.execute("ROLLBACK")
finally:
close_conn(cursor)
# 使用示例
excel_file = 'path/to/your/excel.xlsx'
table_name = 'your_table_name'
db_config = {
'user': 'your_username',
'password': 'your_password',
'host': 'localhost',
'database': 'your_database'
}
data = read_excel_clean_data(excel_file)
write_to_mysql(data, table_name, db_config)
```
在这个例子中,你可以通过传递不同的参数(如文件路径、数据库配置等)来调用这两个函数来执行相应的操作。
阅读全文