我有一个主数据框“ master_df”,其中一列为日期,另一列中为数据框列表。
在master_df内的每个数据框中,都有一列日期,以及与每个日期相关的价格。
我尝试执行以下操作:
prices = []
for index, row in master_df.iterrows():
pre_data = pd.read_csv(Path + row['Dataframe'] + '.csv')
data = pre_data.set_index('Date')
prices.append(data.loc[row['Date'], 'Price'])
这将产生错误: “标签[12/22/2002]不在索引中”
令人困惑的是,当我做同样的事情但手动输入日期时,它会起作用:
for index, row in master_df.iterrows():
pre_data = pd.read_csv(Path + row['Dataframe'] + '.csv')
data = pre_data.set_index('Date')
prices.append(data.loc['12/22/2002', 'Price'])
将索引设置为日期后,我检查了索引的数据类型,该数据类型为字符串。我很困惑为什么当我将它作为字符串读取时用“ row ['Date']”抓取时为什么它不起作用,但是当手动输入时却起作用了。
我意识到,掌握这些价格可能是一种更简单的方法,请记住,这是大型复杂功能的一部分,因此,我只是在尝试找出此特定错误。换句话说,我必须用row ['Date']来抓取它。请告知我如何解决此错误。
谢谢!
答案 0 :(得分:0)
“日期”列中“ master_df”中的数据类型是什么?也许是日期? row ['Date']。strftime(“%m /%d /%Y”)应该会有所帮助。
prices = []
for index, row in master_df.iterrows():
pre_data = pd.read_csv(Path + row['Dataframe'] + '.csv')
data = pre_data.set_index('Date')
prices.append(data.loc[row['Date'].strftime("%m/%d/%Y"), 'Price'])