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

时间:2016-09-12 10:00:50

标签: python pandas dataframe dataset bigdata

我有一个1,174,697行的时间点数据集和一个包含876,923行的数据帧。数据框由以下列组成:时间,目标,类型。

我想迭代数据框,以便在每一行中检查数据集中时间点的“时间”,找到数据集中与“时间”相等的所有时间点,然后在那些选择“目标”之间。例如,如果有5个项目与“时间”具有相同的值且目标等于3,则从开始选择第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)

0 个答案:

没有答案