3
我有一个数据框,其中有超过1000万个由大约30列组成的原始数据。如何在熊猫数据框中对数据集进行子集划分?
第一列是ID
ID C
1 1
1 2
1 3
1 2
1 3
2 1
2 5
2 9
2 0
2 1
我想只提取每个ID的前四行(它们是最新的输入,因为它已经被排序)
我目前正在使用的下面的代码,但不幸的是,它处理大约5%的数据需要大约两个小时的时间,所以处理整个数据可能需要一天左右的时间。
df1 = pd.DataFrame() # an empty dataframe
for i in df.ID: # df is the dataframe which contains the data
df2 = df[df["ID"]== i]
df2 = df2[0:4] # take the first four rows
df_f = df1.append(df2)
有没有一种有效的方法可以在短时间内完成同样的事情。
能够保证所有的有每个ID至少有四个实例? – kiliantics
是的,大多数ID的实例数超过10个,我只想从最近四个月获取实例,而实例已经按照每个ID的降序排序。 –