gpt4 book ai didi

python - 由函数创建的多个列表输出,我如何将其放入数据帧?

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:09 25 4
gpt4 key购买 nike

我有以下功能

macd, macdsignal, macdhist = talib.MACD(df.Close.values, fastperiod=12, slowperiod=26, signalperiod=9)

我想让这些新值成为我现有数据框的一部分,我该怎么做?这是我尝试过的

 df['macd'], df['macdsignal'], df['macdhist'] = talib.MACD(df.Close.values, fastperiod=12, slowperiod=26, signalperiod=9)

编辑以添加之前和之后

之前

Close 
10
10
10

之后

Close    macd    macdsignal    macdhist
10 1.1 3.8 5.7
10 3.2 8.7 4.2
10 1.9 9.5 1.2

最佳答案

假设talib.MACD(df.Close.values, fastperiod=12, slowperiod=26, signalperiod=9)返回一个列表的列表,可以得到以下两件事:

将列分配给同一个数据框:

lofl = talib.MACD(df.Close.values, fastperiod=12, slowperiod=26, signalperiod=9)
df[['macd', 'macdsignal', 'macdhist']] = pd.DataFrame.from_records(zip(*lofl))

使用df.assign创建一个新的数据框:

lofl = talib.MACD(df.Close.values, fastperiod=12, slowperiod=26, signalperiod=9)
new_cols = ['macd', 'macdsignal', 'macdhist']
d = {k:v for k,v in zip(new_cols, lofl)}
df = df.assign(**d)

我希望这有用。

关于python - 由函数创建的多个列表输出,我如何将其放入数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47480961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com