2024-08-17

要通过Python将各种数据写入Excel工作表,可以使用openpyxlxlsxwriter库。以下是使用openpyxl库将数据写入Excel工作表的例子:




from openpyxl import Workbook
 
# 创建一个新的工作簿
wb = Workbook()
 
# 选择默认的工作表
ws = wb.active
 
# 数据可以是单个值、列表、字典或任何可迭代的数据结构
data = [
    ["姓名", "年龄", "职业"],
    ["Alice", 30, "Engineer"],
    ["Bob", 25, "Designer"],
    ["Charlie", 35, "Developer"]
]
 
# 将数据写入工作表
for row in data:
    ws.append(row)
 
# 保存工作簿
wb.save("example.xlsx")

确保在写入数据前安装了openpyxl库:




pip install openpyxl

这段代码创建了一个新的Excel工作簿,添加了一个工作表,并将一个数据表写入该工作表,然后保存工作簿到当前目录下的example.xlsx文件。

2024-08-17

要自动获取指定上市公司的财务数据,可以使用pandas_datareader库从Yahoo财经获取数据。以下是获取资产负债表、利润表和现金流量表的示例代码:




import pandas as pd
import pandas_datareader.data as web
 
# 指定上市公司代码和数据来源(Yahoo财经)
symbol = '公司代码'  # 例如:'AAPL' for Apple Inc.
start_date = 'YYYY-MM-DD'  # 数据开始日期
end_date = 'YYYY-MM-DD'  # 数据结束日期
 
# 获取资产负债表
balance_sheet = web.DataReader(symbol + '.BALANCE_SHEET', 'yahoo', start_date, end_date)
# 获取利润表
income_statement = web.DataReader(symbol + '.INCOME_STATEMENT', 'yahoo', start_date, end_date)
# 获取现金流量表
cash_flow = web.DataReader(symbol + '.CASH_FLOW', 'yahoo', start_date, end_date)
 
# 打印数据
print(balance_sheet)
print(income_statement)
print(cash_flow)

请替换公司代码YYYY-MM-DD为实际的公司代码和所需的日期范围。注意,某些公司代码可能不在Yahoo财经提供,或者公司代码和财务报表的命名规则可能有所不同,请根据实际情况进行调整。

2024-08-17

为了提供一个精简的解决方案,我们将使用Python的matplotlib库来绘制一个简单的折线图。以下是一个示例代码:




import matplotlib.pyplot as plt
 
# 数据点
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
 
# 绘制折线图
plt.plot(x, y)
 
# 添加标题和轴标签
plt.title('Simple Plot')
plt.xlabel('x-axis')
plt.ylabel('y-axis')
 
# 显示图形
plt.show()

这段代码将创建一个简单的折线图,显示y = x^2函数的图形。在实际应用中,你可以根据需要修改数据点和绘图的样式。

2024-08-17



import shap
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from matplotlib import pyplot as plt
 
# 生成示例数据
X = np.random.rand(100, 10)
y = np.random.randint(2, size=100)
 
# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
 
# 初始化模型
model = RandomForestClassifier()
 
# 训练模型
model.fit(X_train, y_train)
 
# 使用SHAP值进行特征重要性评估
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)
 
# 计算特征的平均贡献度
feature_contributions = np.abs(shap_values).mean(0)
 
# 可视化特征贡献度
plt.bar(range(len(feature_contributions)), feature_contributions)
plt.xlabel("Feature index")
plt.ylabel("Average SHAP value contribution")
plt.show()

这段代码展示了如何使用SHAP库来评估机器学习模型中每个特征的贡献度,并使用matplotlib进行可视化。首先,我们生成了一些随机的数据,并用train_test_split划分数据集。然后,我们初始化了一个模型并用训练集数据进行训练。接下来,我们使用shap.TreeExplainer来创建一个Explainer对象,并计算测试集上每个样本的SHAP值。最后,我们通过计算SHAP值的平均绝对值来评估每个特征的贡献度,并用matplotlib绘制了贡献度的条形图。

2024-08-17

以下是一个简单的学生信息管理系统的核心函数示例,使用Python和MySQL。请确保你已经安装了mysql-connector-python库,以便与MySQL数据库交互。




import mysql.connector
 
# 连接到MySQL数据库
db_connection = mysql.connector.connect(
    host="localhost",
    user="your_username",
    password="your_password",
    database="students_db"
)
cursor = db_connection.cursor()
 
# 创建学生信息表
def create_student_table():
    cursor.execute("DROP TABLE IF EXISTS student_info")
    cursor.execute("""
    CREATE TABLE student_info (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(255),
        age INT,
        grade VARCHAR(255)
    )
    """)
 
# 插入学生信息
def insert_student(name, age, grade):
    cursor.execute("INSERT INTO student_info (name, age, grade) VALUES (%s, %s, %s)", (name, age, grade))
 
# 查询所有学生信息
def get_all_students():
    cursor.execute("SELECT * FROM student_info")
    return cursor.fetchall()
 
# 更新学生信息
def update_student(id, name, age, grade):
    cursor.execute("UPDATE student_info SET name = %s, age = %s, grade = %s WHERE id = %s", (name, age, grade, id))
 
# 删除学生信息
def delete_student(id):
    cursor.execute("DELETE FROM student_info WHERE id = %s", (id,))
 
# 提交事务
db_connection.commit()
 
# 关闭游标和连接
cursor.close()
db_connection.close()

这个示例提供了创建学生信息表、插入学生信息、获取所有学生信息、更新学生信息和删除学生信息的函数。在实际应用中,你可能还需要添加用户输入验证、错误处理和其他用户界面相关的代码。

2024-08-17

PyInstaller 是一个用于将 Python 程序打包成独立可执行文件的工具,它能够在 Windows、Linux、Mac OS X 等多种操作系统下工作。

安装 PyInstaller:




pip install pyinstaller

打包 Python 程序:




pyinstaller your_script.py

这将会生成dist/your\_script文件夹,里面包含了可执行文件。

如果你想要生成一个单独的可执行文件,可以使用--onefile选项:




pyinstaller --onefile your_script.py

如果你的程序依赖数据文件,你可以使用--add-data选项来包含这些文件:




pyinstaller --add-data 'yourdatafile.dat;.' --onefile your_script.py

如果你想要给生成的可执行文件加上图标,可以使用--icon选项:




pyinstaller --onefile --icon 'youricon.ico' your_script.py

以上是 PyInstaller 的基本使用方法,具体使用时可以根据实际需求选择合适的选项。

2024-08-17



from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
import os
 
def save_pdf(url, output_path):
    # 初始化Chrome驱动器
    chrome_options = Options()
    chrome_options.add_argument('--headless')  # 无界面模式
    driver = webdriver.Chrome(options=chrome_options)
    
    # 打开网页
    driver.get(url)
    
    # 等待网页加载完成
    WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'myElementId')))
    
    # 执行JavaScript脚本,下载PDF
    driver.execute_script("""
        function downloadPDF() {
            var pdfLink = document.querySelector('a[href$=".pdf"]');
            if (pdfLink) {
                window.location.href = pdfLink.getAttribute('href');
            }
        }
        downloadPDF();
    """)
    
    # 等待PDF文件开始下载
    sleep(5)  # 假设下载需要5秒钟
    
    # 获取下载的PDF文件
    pdf_file = [f for f in os.listdir(output_path) if f.endswith('.pdf')][0]
    
    # 移动PDF文件到指定目录
    os.rename(os.path.join(output_path, pdf_file), output_path + 'article.pdf')
    
    # 关闭Chrome驱动器
    driver.quit()
 
# 使用示例
save_pdf('http://example.com', '/path/to/output/directory/')

这段代码使用了Selenium库来自动化浏览器操作。它首先初始化了一个无头Chrome驱动器,然后导航到指定的网页。接着它等待特定的元素加载完成,然后通过注入JavaScript代码来寻找并下载网页上的PDF文件。最后,它将下载的文件重命名并移动到指定的输出目录。这个过程是在后台执行的,不需要用户直接参与。

2024-08-17

在macOS上安装Python 2.7和Python 3.x的多版本管理,可以使用pyenv。以下是安装pyenv及使用它安装Python 2.7和Python 3.x的步骤:

  1. 安装pyenv



brew update
brew install pyenv
  1. 重新启动终端或重新加载shell配置文件,以使pyenv命令生效。
  2. 安装Python 2.7和Python 3.x版本:



pyenv install 2.7.18
pyenv install 3.7.9
  1. 设置Python 2.7为全局版本:



pyenv global 2.7.18
  1. 设置Python 3.x为默认版本(以3.7.9为例):



pyenv global 3.7.9
  1. 检查安装的Python版本:



python --version
python2 --version
python3 --version

以上步骤将在你的macOS系统上安装Python 2.7和Python 3.x的多个版本,并使你能够在它们之间轻松切换。

2024-08-17

要使用罗技的动态链接库(DLL)控制鼠标,你可以使用Python的ctypes库来调用库中的函数。首先,确保你已经安装了罗技的软件,并且找到了相应的DLL文件。

以下是一个简单的示例,展示如何使用ctypes来调用罗技动态库中的函数,以控制鼠标的移动。




import ctypes
 
# 加载动态链接库文件
# 这里的 'logitechgaming.dll' 文件路径需要根据实际情况进行替换
lib = ctypes.cdll.LoadLibrary('path_to_logitechgaming.dll')
 
# 假设你想要移动鼠标,可以使用如下函数
# 这里的函数名和参数需要根据罗技的DLL文档进行替换
def move_mouse(x, y):
    # 假设函数声明如下:
    # void MoveMouse(int x, int y);
    lib.MoveMouse(ctypes.c_int(x), ctypes.c_int(y))
 
# 使用函数移动鼠标
move_mouse(100, 100)

请注意,上述代码中的函数名和参数类型都是假设的,你需要查阅罗技的DLL文档或者是其他用户分享的文档来获取正确的函数声明。

在实际使用时,你可能还需要处理错误和异常,确保程序的健壮性。如果你没有找到相关的文档,可以尝试使用工具如Dependency Walker来查看DLL的导出函数。