如何在python中使用numpy.fft计算主频



我有这个关于车辆振动的数据框架,我想计算振动的主频率。我知道我们可以使用numpy.fft来计算它,但我不知道如何将numpy.ft应用于我的数据帧。请启发我如何在python中做这件事。谢谢。

数据帧列实际上是一个NumPy数组

df = pd.DataFrame({"Vibration":[random.uniform(2,10) for i in range(10)]})
df["fft"] = np.fft.fft(df["Vibration"].values)
print(df.to_string())

输出

Vibration                  fft
0   8.212039  63.320213+0.000000j
1   5.590523   2.640720-2.231825j
2   8.945281  -2.977825-5.716229j
3   6.833036   4.657765+5.649944j
4   5.150939  -0.216720-0.445046j
5   3.174186  10.592292+0.000000j
6   9.054791  -0.216720+0.445046j
7   5.830278   4.657765-5.649944j
8   5.593203  -2.977825+5.716229j
9   4.935937   2.640720+2.231825j

每15行分批

df = pd.DataFrame({"Vibration":[random.uniform(2,10) for i in range(800)]})
df.assign(
fft=df.groupby(df.index // 15)["Vibration"].transform(lambda s: np.fft.fft(list(s)).astype("object")),
grpfirst=df.groupby(df.index // 15)["Vibration"].transform(lambda s: list(s)[0])
)

在不知道DataFrame的外观以及需要用于计算的字段的情况下,您可以使用.apply()将任何函数应用于数据帧

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html

最新更新