自动处理来自多个 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()
(注意:我是 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()