首页 > 解决方案 > 通过在 python 中提供条件来创建多个数据框

问题描述

我正在尝试从单个数据帧创建多个数据帧。我设法通过重复同一行代码来实现该过程,但它看起来很乏味并且不利于时间。我想创建一个循环遍历数据框并为我创建数据框。此外,我还有一个初始数据帧副本的列表(我想从中创建多个数据帧)。

df_list = [df_0run,df_1run,df_2run,df_3run,df_4run,df_5run,df_6run]

请为我的问题提出一种方法。

df_0season1=df_0run.loc[df_0run['Season_Id']==1]
df_0season2=df_0run.loc[df_0run['Season_Id']==2]
df_0season3=df_0run.loc[df_0run['Season_Id']==3]
df_0season4=df_0run.loc[df_0run['Season_Id']==4]
df_0season5=df_0run.loc[df_0run['Season_Id']==5]
df_0season6=df_0run.loc[df_0run['Season_Id']==6]
df_0season7=df_0run.loc[df_0run['Season_Id']==7]
df_0season8=df_0run.loc[df_0run['Season_Id']==8]
df_0season9=df_0run.loc[df_0run['Season_Id']==9]

以这种方式,我想创建多个数据框,并将它们作为列表返回。或多个列表。

所需输出

Seasons list = [df_0season1,df_0season2,df_0season3,df_0season4,df_0season5,df_0season6,df_0season7,df_0season8,df_0season9, 
df_1season1,df_1season2,df_1season3,df_1season4,df_1season5,df_1season6,df_1season7,df_1season8,df_1season9, 
df_2season1,df_2season2,df_2season3,df_2season4,df_2season5,df_2season6,df_2season7,df_2season8,df_2season9, 
df_3season1,df_3season2,df_3season3,df_3season4,df_3season5,df_3season6,df_3season7,df_3season8,df_3season9, 
df_4season1,df_4season2,df_4season3,df_4season4,df_4season5,df_4season6,df_4season7,df_4season8,df_4season9,
 df_5season1,df_5season2,df_5season3,df_5season4,df_5season5,df_5season6,df_5season7,df_5season8,df_5season9]

标签: pythonpandasdataframe

解决方案


exec我想你可以在这里使用一点帮助,

for i in range (1,10):
    exec("""df_0season{}=df_0run.loc[df_0run['Season_Id']=={}]""".format(i))

这只是exec的一个基本应用程序, 您可以根据需要对其进行修改。


推荐阅读