在多个数据帧上循环

2024-09-24 02:18:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须对一堆数据帧重新取样。我的数据帧被简单地称为dfu 1、dfu 2等等(我有大约50个)。 我可以很容易地分别重新取样,方法如下:

df_out_1 = resample(df_1, replace=False, n_samples=50, random_state=11) 
df_out_2 = resample(df_2, replace=False, n_samples=50, random_state=11) 
....

它可以工作,但写50行几乎相同的代码不是很聪明。所以我尝试了一个循环:

df_list=[('df_'+str(i),'df_out_'+str(i)) for i in range(1,52)]
for (df,df_out) in df_list: 
    # Downsample majority class
    df_out = resample(df, replace=False, n_samples=50, random_state=11) 

它不起作用,因为对于python来说,循环中的df和dfu不是数据帧而是字符串。我不知道怎样才能治好它。:(

提前谢谢,D


Tags: 数据方法infalsedfforrandomout
1条回答
网友
1楼 · 发布于 2024-09-24 02:18:49

使用globals()[string]引用字符串中指定的变量

完整代码:

df_list=[('df_'+str(i),'df_out_'+str(i)) for i in range(1,52)]
for (df_str,df_out_str) in df_list:
    df = globals()[df_str]
    df_out = globals()[df_out_str]
    # Downsample majority class
    df_out = resample(df, replace=False, n_samples=50, random_state=11) 

相关问题 更多 >