python读取文件夹下多个xlsx文件并提取里边数据进行最小二乘拟合振幅和相位并保存代码示例
时间: 2024-05-11 11:14:53 浏览: 105
pymeta:Pymeta将在网上搜索域中的文件,以下载和提取元数据。 此技术可用于识别
可以参考如下代码:
```python
import os
import pandas as pd
from scipy.optimize import curve_fit
# 最小二乘拟合函数
def func(x, a, b, c):
return a * np.sin(b * x + c)
# 读取文件夹下所有xlsx文件
folder_path = "文件夹路径"
file_list = os.listdir(folder_path)
xls_list = [x for x in file_list if x.endswith('.xlsx')]
# 提取数据并拟合
for xls in xls_list:
xls_path = os.path.join(folder_path, xls)
df = pd.read_excel(xls_path)
xdata = df['x'].values
ydata = df['y'].values
popt, _ = curve_fit(func, xdata, ydata)
amp, phase = popt[0], popt[2]
# 保存数据
save_path = xls_path.replace('.xlsx', '') + '_result.txt'
with open(save_path, 'w') as f:
f.write('振幅:{}\n'.format(amp))
f.write('相位:{}\n'.format(phase))
```
希望对您有帮助!
阅读全文