如何将多个NumPy数组从函数返回到单独的数据框列中

问题描述 投票:0回答:1

如何将在函数内部生成的两个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()
python dataframe
1个回答
0
投票

您可以通过将列的字典作为DataFrame() constructor参数传递来使用DataFrame()这样构建熊猫数据框。>>

data
© www.soinside.com 2019 - 2024. All rights reserved.