Я хотел бы знать, как хранить различные фреймы данных о запасах в каком-либо контейнере и иметь возможность запускать некоторые операции за один раз для всех фреймов данных в этой операции контейнера, а также рассчитывать ежедневные, кончажные и т. Д.
Я использовал для этого функцию vars()
, но это не очень хорошая практика. Я хочу хранить данные по-другому, и понятия не имею, как это сделать.
В моем задании мне сказали, не используйте vars()
используйте что-то еще
for stock in stocks:
df = pd.read_csv(stock+'_data.csv',index_col=0)
df.columns
df['Daily returns'] = df['close'] /df['open'] -1
vars()['df_'+stock] = df.copy()
#Calculation of Loss and profit trades
loss=np.where(vars()['df_'+stock]['Daily returns']<0)# so u see this code is first calling the data frame 'df_'+stock so a stock data is stored in it where we named each stock dataframe
profit=np.where(vars()['df_'+stock]['Daily returns']>0)
#Calculation of trade counts
total_trades = len(vars()['df_' + stock]) # as we are taking a trade evry single day so we can count the lenght of dataframe
loss_trades = len(loss[0]) # [0] this argument is there because without this code would return zero
profit_trades = len(profit[0])
#Calculation of hit ratios
hit_ratio= profit_trades/(loss_trades + profit_trades)
total_returns=np.cumsum(vars()['df_'+stock]['Daily returns'])
vars()['df_'+stock]['Cum Returns']=total_returns
stats=[stock,hit_ratio,total_returns[len(total_returns)-1]]
all_stats.append(stats)
headings=['Stock Name','Hit Ratio','Final Return']
#Final Result of all the calculations
final_result=pd.DataFrame(all_stats, columns=headings)
plt.plot(vars()['df_'+stock].index.values,vars()['df_'+stock]['Cum Returns'],label=stock)
plt.legend()
ожидаются результаты, но я не хочу использовать vars()
function