我想将在一组动态频率下进行的测量插入到一组固定频率中。我将 Python 3.7 与 pandas.apply 和 numpy.interp 一起使用:
import numpy as np
import pandas as pd
df = pd.DataFrame({'m1':[2.,3.],
'm2':[4.,6.],
'm3':[2.,3.],
'shift':[1.1,1.2]})
print (df)
# m1 m2 m3 shift
# 0 2.0 4 2.0 1.1
# 1 3.0 6 3.0 1.2
freqs =np.array([10.,20.,30.])
def myfunction(x):
newfreqs = freqs*x[-1]
result = np.interp(freqs,newfreqs,x[:-1])
return result
print(df.apply(myfunction, axis=1,raw=True))
当我运行代码时,我收到错误:
ValueError: Shape of passed values is (3, 2), indices imply (4, 2)
如果我将输入列之一更改为 int-type,则 f.ex.
'f2':[4,6]
然后没有错误并返回正确答案。
任何帮助表示赞赏。
相关分类