我有一个csv文件,其中包含500家公司的股票价值,为期5年(2013-2017年)。我拥有的列是:日期,开盘价,最高价,最低价,收盘价,成交量和名称。我希望能够比较这些公司,看看其中哪20家是最好的。我当时只是考虑使用均值,但由于收集的第一个数据(2013年1月)的股票价值有所不同(某些开始时为30美元,另一些开始时为130美元),因此很难真正比较这五年来最好的。因此,我希望将每个公司的首个日期的值作为零点。基本上,我想从第一个日期到收集的其余数据中减去收盘价。
我的问题是,首先,我很难达到第一个日期的收盘价。我想以某种方式编写类似“ data.loc(data ['close'])。iloc(0)”的东西。但是由于它是一个数据框,所以我找不到行的值,也无法遍历该数据框。
其次,我不确定如何区分这两家公司。我想对这500家公司中的每家公司都执行零点操作,因此我需要知道何时重新开始。
我现在拥有的代码是
def main():
data = pd.read_csv('./all_stocks_5yr.csv', usecols = ['date', 'close', 'Name'])
comp_name = sorted(set(data.Name))
number_of = comp_name.__len__()
comp_mean = []
for i in comp_name:
frames = data.loc[data['Name'] == i]
comp_mean.append([i, frames['close'].mean()])
print(comp_mean)
但这只会给我平均值,而不会使用零点
我的另一个想法是,将第一个值(2013年1月1日)的收盘价与最后一个值(2017年12月31日)的收盘价进行比较,以查看股票的增/减量。我不确定这是我如何从这些日期开始为500家公司中的每一个实现接近的价值。
您对任何一种方法都有建议吗?
提前谢谢