satırların belirsiz sayıda birleştirme ben şuna benzer bir CSV dosyası var verilen liste. Benim liste ['main', 'makea']
ise Örneğin, nihai tablo bu gibi görünmelidir:bir Dataframe
tid || instr_count || fnname
=============================
22 || 892806 || main
22 || 138 || makea
birçok girişler verilen listedeki 2 değerleri arasında nasıl olacağını önceden bilmek değil - bu yüzden fazla olabilir
aşağı sıkıştırılmış olmalıdırtid || instr_count || fnname
=============================
22 || 892806 || main
22 || 18 || randlc
22 || 7 || randlc
22 || 35 || randlc
22 || 20 || randlc
22 || 120 || makea
:
tid || instr_count || fnname
=============================
22 || 892806 || main
22 || 200 || makea
Ben Dataframe
kullanarak pandalar 0.17.1 ve piton 2.7.6 bu değerleri yükledim bu benzer. İşte ben bugüne kadar ne var:
def compressDataframes(df):
new_df = pd.DataFrame(columns=df.columns)
instr_count = 0
i = 0
for row in df.itertuples():
instr_count += row[2]
if any(f in row[3] for f in FUNCS): #FUNCS is my "given list"
new_df.loc[i] = [row[1], instr_count, row[3]]
i += 1
instr_count = 0
return new_df
Bu çalışır, ancak ben (Bazı çok büyük (> 10 GB) veri setleri ile çalışıyorum) daha hızlı yapmak için bir yolu olmalı şüpheli. Herhangi bir öneri var mı?
- Bu düzgün çalışması eğer sanmıyorum ben ana, randlc, randlc, makea, makea gibi bir şey var. İlk "makea" ikinci grupta toplanacak, değil mi? – tonysdg
Evet, haklısınız. – jezrael
Satır numarasını gruplanmış sütuna kopyalamak mümkün mü? Bu, daha sonra tekrar doldurulabilen benzersiz bir tanımlayıcıyı yapar. – tonysdg