【发布时间】:2021-12-12 09:20:21
【问题描述】:
我有一个从 1967 年到现在的时间序列日期框架,它为我提供了给定股票的调整后收盘价。我只对 2020 年 1 月 1 日至今年 5 月的价格感兴趣,所以我使用 .loc 对其进行了切片。我想在此期间将这些价格标准化,因此我使用以下公式来实现这一点:
import pandas as pd
import numpy as np
df = pd.read_csv('filename.csv')
df.loc['2020-01-01':]
df
Date Ticker Adj Close
2020-01-02 ABC X1
2020-01-03 ABC X2
2020-01-04 ABC X3
2020-01-05 ABC X4
2020-01-06 ABC X5
... ... ...
2021-05-28 ABC X355
def normalized(series):
minimum = df['Adj Close'].min()
maximum = df['Adj Close'].max()
return ((df['Adj Close'] - minimum) / (maximum - minimum))
df['Prices Normalized'] = df['Adj Close'].transform(normalized)
当我运行它时,我得到ValueError: Wrong number of items passed 355, placement implies 1
我的目标是创建一个具有标准化价格的新列,但似乎无法弄清楚为什么会出现此错误。提前感谢您的帮助!
【问题讨论】:
-
df['Prices Normalized'] = normalize(pd.Series())。看起来series在你的normalized函数中没有做任何事情。
标签: python pandas dataframe numpy valueerror