按小时在列表中选择dataframe



我有一个包含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]

最新更新