自动处理来自多个 csv 文件和线性回归的数据

Automate data from multiple csv files and linear regression

(注意:我是 python 的新手,这是我在 Stack Overflow 上的第一个 post!)

我有一个包含多个 .csv 文件的目录,每个文件都有一列力和一列位移数据。我想对它们中的每一个执行相同的线性回归绘图函数,而不必更改 .py 文件中的文件名。 (理想情况下,我希望每个方程都是一个输出,但现在我对多个图很满意!)

到目前为止我有:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy import stats

values = pd.read_csv('RawData_1.csv')

slope, intercept, r_value, p_value, std_err = 
stats.linregress(values['Displacement'],values['Force'])

ax = sns.regplot(x="Displacement", y="Force", data=values, color='b', 
line_kws={'label':"y={0:.1f}x+{1:.1f}".format(slope,intercept)})

ax.legend()
plt.show()

我试过实施其他 post 的行,但没有成功。任何帮助深表感谢。谢谢 :)

你可以使用glob.glob()获取目录的内容作为列表,然后使用for循环为每个文件创建一个图形:

import glob
# assuming you want to go ove the current working directory
files = glob.glob('RawData*.csv')
for f in files:
    values = pd.read_csv(f)

    slope, intercept, r_value, p_value, std_err = 
    stats.linregress(values['Displacement'],values['Force'])

    ax = sns.regplot(x="Displacement", y="Force", data=values, color='b', 

    line_kws={'label':"y={0:.1f}x+{1:.1f}".format(slope,intercept)})

    ax.legend()
    plt.show()