如何将在函数内部生成的两个NumPy数组返回到DataFrame的两个独立列中?
我可以使用两条标记的代码行将单个NumPy数组返回到单个DataFrame列中,但不能超过一个数组。
请参阅下面的示例代码。仅出于示例目的,函数“ my_function”的代码保持为最少。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
n=2000
t=np.linspace(0.,n/200,num=n,endpoint=False)
x=0.3*np.random.normal(0,1.,n)
y=0.3*np.random.normal(0,1.,n)
z=0.3*np.random.normal(0,1.,n)
def my_function(entry):
# some code here that creates two lists, for example:
freq = [1.0,2.0,3.0,4.0]
mag = [5.0,6.0,7.0,8.0]
#return np.array(freq)
return np.array(freq),np.array(mag)
idx = pd.date_range('2020-01-01',periods=2000,freq='5L')
df = pd.DataFrame(index=idx,columns=['X','Y','Z'])
df['X']=x
df['Y']=y
df['Z']=z
features_df = pd.DataFrame(columns=['frequency','magnitude'])
resample_freq ='0.5S' # resample-frequency
#features_df['frequency'] = df[['X','Y','Z']].resample(resample_freq).apply(my_function)
features_df[['frequency','magnitude']] = df[['X','Y','Z']].resample(resample_freq).apply(my_function)
features_df.head()
您可以通过将列的字典作为DataFrame()
constructor参数传递来使用DataFrame()
这样构建熊猫数据框。>>
data