嵌套的for循环不重置python

2024-06-11 13:10:35 发布

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

我是python新手,我发现使用for循环比使用R更难

下面是我的代码示例:

import pandas as pd
import os


insight_numbers = list(range(379, 397))

insights = ["insight." + str(number) for number in insight_numbers]

#List insight files
folder = ("path\\to\\data")

individual_insight_files = []
for insight in insights:
    individual_insight_files.append(str(folder)  + '\\'+ str(insight) +'.csv')

#Initialize empty lists for use in loops
user_files = []
user_data_list = []

#Outer loop - reads each larger file
for insight in individual_insight_files:
    if not os.path.isfile(insight):
        continue
    try: 
        insight_raw = pd.read_csv(insight)
    except: 
        print(str((insight))) + 'Errored out' 
        continue
    
    ids = insight_raw.PERSON_ID
    
    #Middle loop - identifies user csvs
    for user in ids:
        user_files.append(str(folder)  + '\\'+ str(user) +'.csv')
                
        #Inner loop - puts results of user csvs into list
        for uf in user_files:
            if not os.path.isfile(uf):
                continue
            try: 
                user_file = pd.read_csv(uf)
            except: 
                print(str((uf))) + 'Errored out' 
                continue
            
            print(user_file)
            
            user_data_list.append(user_file)
                        

我遇到的问题是,对于第一个insight文件,循环可以正常工作,但是如果“ids”变量应该随着外部循环中的每个新insight而更改,那么它不会重置。对不起,我知道这是一个基本问题,但我真的被卡住了!谢谢你的建议


Tags: csvpathinforosfilesfolderlist