我想将在动态频率集合上进行的测量插值到固定频率集合中。 我使用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类型,例如:
'f2':[4,6]
那么,没有错误并且返回了正确的答案。
非常感谢您的帮助。