Python多文件夹数据处理:如何获取符合条件的列表对应索引i?
解决索引获取问题的方案
问题根源是你只存储了数据列表X,没有同步记录对应的文件夹索引i,导致筛选后无法关联回原始索引。以下是修改后的代码和说明:
修改思路
- 不再单独存储
X,改用列表存储索引-数据对(比如元组(i, A)) - 筛选时直接对索引-数据对进行判断,同时保留符合条件的索引
- 最后提取所有符合条件的索引,得到目标列表
修改后的代码
import pandas as pd N = 50 I = [8, 11, 19, 37, 40, 42] # 存储(索引i, 处理后的数据A)的列表 data_with_index = [] for i in range(1, N+1): if i in I: continue file_loc = f"C:\\Users\\{i}\\Data_220_beta_0.1_47.0_53.0ND.csv" df = pd.read_csv(file_loc) A = df["% of Nodes not visited"].to_numpy() # 清理NaN和转换数据 A = [x for x in A if str(x) != 'nan'] A = [eval(e) for e in A] # 保存索引和对应数据 data_with_index.append((i, A)) # 筛选出元素不全相同的条目,提取对应的索引 valid_indices = [i for i, a in data_with_index if min(a) != max(a)] print("符合条件的i列表:", valid_indices)
关键修改点
- 用
data_with_index替代原有的X,每个元素是(i, A),同步保留索引和数据 - 列表推导式直接遍历
data_with_index,判断min(a) != max(a)后提取i - 移除了未使用的
reduce导入,精简代码
运行后就能直接输出符合条件的索引列表,比如[20,27,37,45,48,50]这类结果。
内容的提问来源于stack exchange,提问作者user20032724
相关产品推荐
相关产品推荐

