如何提高在大数据上循环大数据帧的性能

2024-06-09 09:29:52 发布

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

我有一个包含1174697行的时间点数据集和一个包含876923行的数据帧。数据帧由以下列组成:时间、目标、类型。你知道吗

我想迭代数据帧,在每一行检查“时间”和数据集中的时间点,找到数据集中所有与“时间”值相等的时间点,然后在这些时间点之间选择“目标”第1个。例如,如果有5个项目的“时间”值相同,而目标值等于3,则选择从Begging开始的第4个项目,因为目标值的作用类似于索引。你知道吗

我会把代码放在这里。问题是在两个循环上迭代要花很长时间。我想知道怎样才能提高表现。你知道吗

    timepoint_ds = file['/timepoints']

    df = track_df.loc[:, ['time', 'target', 'type']]

    label_imgindex_df = pd.DataFrame()

    for index, row in df.iterrows():

        print("---Row--------------:",index)
        hdf_index = row["target"]

        label = row["type"]

        time=  row["time"]

        image_index_list, label_list, time_target =[], [], []

        for i, value in enumerate(timepoint_ds):

            if value == time:

                image_index_list.append(i)  
                label_list.append(label)


        label_index_df = pd.DataFrame({'index':image_index_list[hdf_index] , 'label': label} , index= [i])

    with open('/home/usr/label_imgindex_df.pkl', 'wb') as f:
        pk.dump(label_imgindex_df, f)

Tags: 数据项目imagetarget目标dfindextime