You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不改变结果的前提下为Python回归代码添加sys.argv?

给OLS回归代码添加sys.argv的实现方案

首先,sys.argv是Python用来获取命令行运行参数的列表:

  • sys.argv[0]是当前运行的脚本文件名
  • sys.argv[1]及以后是你在命令行输入的额外参数

针对你的需求,我们可以把固定的CSV文件名改成通过命令行传入,这样既用到sys.argv,又不会改变原代码的输出结果(只要传入正确的文件名就行)。

修改后的代码

import pandas as pd
import statsmodels.api as sm
import sys  # 导入sys模块

# 处理命令行参数:如果传入了文件名就用传入的,没传就用默认的'german_credit_data.csv'
if len(sys.argv) >= 2:
    csv_file = sys.argv[1]
else:
    csv_file = 'german_credit_data.csv'

df = pd.read_csv(csv_file)
df.rename(columns = {"Credit amount":"Credit_amount"}, inplace = True)

df = df[['Credit_amount','Age','Duration']]
X = df[['Age','Duration']]
Y = df[['Credit_amount']]
X = sm.add_constant(X)
model = sm.OLS(Y, X).fit()

print(model.params.round(2))
print(model.rsquared.round(2))

运行方式

  1. 把代码保存为regression.py
  2. 在命令行运行:
    • 如果用默认文件名,直接输入:python regression.py,结果和原代码完全一致
    • 如果要指定其他同格式CSV文件,输入:python regression.py your_data.csv

关键说明

  • 保留了默认文件名,即使不传参数,代码也能和原来一样正常运行
  • 通过len(sys.argv)判断参数数量,避免因未传参数导致索引错误
  • 修改后代码灵活性提升,同时完全不影响原有输出结果

内容的提问来源于stack exchange,提问作者MCly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:06:26