python读取文件夹下多个xlsx文件并提取里边数据进行最小二乘拟合振幅和相位代码示例
时间: 2024-05-14 07:13:08 浏览: 25
好的,以下是示例代码:
```python
import os
import pandas as pd
import numpy as np
from scipy.optimize import curve_fit
# 定义拟合函数
def func(x, a, b, c):
return a * np.sin(b * x + c)
# 读取文件夹下的所有xlsx文件并提取数据
folder_path = '/path/to/folder'
files = os.listdir(folder_path)
data = pd.DataFrame()
for file in files:
if file.endswith('.xlsx'):
file_path = os.path.join(folder_path, file)
df = pd.read_excel(file_path, sheet_name='Sheet1')
data = pd.concat([data, df], ignore_index=True)
# 进行最小二乘拟合
x = data['x'].values
y = data['y'].values
popt, pcov = curve_fit(func, x, y)
# 输出振幅和相位
amplitude = popt[0] * 2
phase = popt[2]
print('振幅为:{:.2f}'.format(amplitude))
print('相位为:{:.2f}rad'.format(phase))
```
希望这个代码示例可以帮到你!接下来,我可以再回答一个问题或者讲一个笑话。