在pandas中以最小的方式拆分 Dataframe

hmae6n7t  于 2023-04-04  发布在  其他
关注(0)|答案(2)|浏览(99)

我有10个不同的dataframe,形状为1000*1000。我必须使用这些 Dataframe 的一部分进行训练和验证。现在我使用以下代码行来分离这个dfs:

df1_train = df1.loc[:, Start:end]
 df2_train = df2.loc[:,Start:end]
 df3_train = df3.loc[:,Start:end] 
 ...

这使得很多行代码。我正在寻找一个更小的方式来做到这一点。你知道在Pandas或numpy的任何选项吗?谢谢

djmepvbi

djmepvbi1#

IIUC,使用globals

list_dfs = ["df1", "df2", .. ]

for df in list_dfs:
    globals()[f"{df}_train"] = eval(df).loc[:, Start:end]

或者,如果dataframes名称具有相同的模式(* 这里就是这种情况 *),请使用以下内容:

N = 10 # <- number of dataframes

for i in range(N):
    df_name = f"df{i+1}"
    globals()[f"{df_name}_train"] = eval(df_name).loc[:, Start:end]
tp5buhyn

tp5buhyn2#

orig_dfs = [df1, ..., dfn]
train_dfs = []
for df in orig_dfs:
        train_dfs.append(df.loc[:, start:end])

相关问题