给定df
ticker close open
0 AAPL 1.2 1.1
1 TSLA 25.0 27.0
2 TSLA 83.0 80.0
3 TSLA 95.0 93.0
4 CCL 234.0 234.2
5 AAPL 512.0 520.0
我的目的:
(1)将函数应用于每个股票代码数据帧(子集)
(2)为每个ticker数据帧创建新列,列中的值为字符串,如“exist”
我的预期产出
ticker close open candlestick SMA_20 SMA_50
0 AAPL 1.2 1.1 bullish (number) (number)
1 TSLA 25.0 27.0 bearish (number) (number)
2 TSLA 83.0 80.0 bullish (number) (number)
3 TSLA 95.0 93.0 bullish (number) (number)
4 CCL 234.0 234.2 bearish (number) (number)
5 AAPL 512.0 520.0 bearish (number) (number)
我试过这个代码,速度非常慢
for x in df.ticker:
df_ticker = df[df.ticker == x]
df_close_price = pd.DataFrame(df_ticker.close)
for days in [20,50]:
df_ticker[f'SMA_{days}'] = df_close_price.apply(lambda c: abstract.SMA(c, days))
......
df_result = df_result.append(df_ticker)
我想知道在处理数百万行时,如何通过ticker更快地过滤数据帧。许多人建议使用.loc
、numpy
,但我找不到一种可能的执行方法
谢谢
我想你需要^{} :
编辑:这里可以将^{} 与自定义函数一起使用,主要将序列传递给
abstract.SMA
,而不是.apply(lambda c: abstract.SMA(c, days)
:相关问题 更多 >
编程相关推荐