我正在尝试使用pd.Series计算x列值的百分比。我收到NoneType错误。不太确定我在做什么错。
def PctMA(self, df, pct):
pctName = 'PCT' + str(pct)
pctDecimal = float(pct/100)
pctCalulated = pd.Series((df['value'] - (df['value'] * pctDecimal)), name = pctName)
df = df.join(pctCalulated)
return df
I get the below error when I execute the code. pctCalulated = pd.Series((df['value'] - (df['value'] * pctDecimal)), name = pctName) TypeError: 'NoneType' object has no attribute '__getitem__'
以下是预期结果,其中Pct1生成为值的1%列。
index value pct1 1 2476 2451.24 2 2475 2450.25 3 2486 2461.14 4 2536 2510.64 5 2453 2428.47 6 2486 2461.14 7 2648 2621.52 8 2563 2537.37 9 2756 2728.44
答案 0 :(得分:0)
也许错误不是在函数中,而是在输入中,因为我刚刚使用了您的代码并且它正在起作用:
def PctMA(df, pct):
pctName = 'PCT' + str(pct)
pctDecimal = float(pct/100)
pctCalulated = pd.Series((df['value'] - (df['value'] * pctDecimal)), name = pctName)
df = df.join(pctCalulated)
return df
df = pd.DataFrame({'value': [2476,2476,2486,2536]})
df_1 = PctMA(df, pct)
df_1
最好提供更多细节。
答案 1 :(得分:0)