搜索和排序多个数据框

时间:2019-07-12 07:38:45

标签: python pandas data-analysis

我大约有600个腌制的DataFrame。每个DataFrame包含一列,其中每个条目对应于“大型强子对撞机”中特定探测器的标识号(ID)。

600个腌制的数据帧中的每一个都包含大约12000行(以及大约10000个不同的检测器ID)。

我想做的是遍历所有600个腌制的DataFrame,并创建新的DataFrame,以使每个新的DataFrame对应于不同的检测器ID。例如最后我可能有

df_ID1
df_ID2
...
df_ID10000

然后在每个数据帧中,我可以访问有关每个检测器的信息。

当前,我正在使用以下方法(请参见下文)。我创建一个空的DataFrames字典,每个键对应于检测器ID。我的第一个循环是遍历所有600个腌制文件的循环。我的内部循环是遍历字典中的每个键,在这里我仅将已打开的腌制DataFrame中具有正确粒子ID的行连接起来。

IDs = [7791,26323] #an example of two different detector IDs
DFS = [pd.DataFrame(columns=COLUMNS)]*len(IDs) #start with empty     DataFrames
DFS_DICT = dict(zip(IDs, DFS)) #Create a dictionary

for (i,filename) in enumerate(os.listdir(READ_PATH)):
    if filename.endswith(".pkl"):
        opened_df = pd.read_pickle(READ_PATH+filename)
        for id in DFS_DICT:
            DFS_DICT[id] = pd.concat([DFS_DICT[id], opened_df[opened_df['HwidCell']==id]])
        del opened_df

我知道这是O(N ^ 2)时间,理想情况下,我希望它运行得更快。

0 个答案:

没有答案