我有一个包含24个dataframe的列表,其中包含两年的小时价格,我想指定一个for循环,以便每个dataframe每天只显示一个小时的价格。
我已经走了这么远:
for i in range(24):
dfs[i] = dfs[i][dfs[i]['hour_0'] == 1]
所以这取列表中的每一行,如果设置的小时(这里是'hour_0')等于1(在我的小时虚拟变量中),则保留该行。
这里明显的问题是,这些代码片段只提取一天中的第一个小时,我希望像下面这样,为每一行提取一个新的小时:for i in range(24):
dfs[i] = dfs[i][dfs[i]['hour_i'] == 1]
但是这行不通。
感谢所有的帮助。
你可以试试:
for i in range(24):
dfs[i] = dfs[i][dfs[i]['hour_'+str(i)] == 1]
或者使用f-string,这样更简洁:
for i in range(24):
dfs[i] = dfs[i][dfs[i][f'hour_{i}'] == 1]