内の行の未定数をマージ私はこのようになりますCSVファイルを持っています与えられたリスト。私のリストが['main', 'makea']
ある場合たとえば、ファイナルテーブルには、次のようになります。DATAFRAME
tid || instr_count || fnname
=============================
22 || 892806 || main
22 || 138 || makea
私は多くのエントリが与えられたリストに2つの値の間になりますどのように事前に知っていない - それは以上であってもよいです圧縮されなければならない
tid || 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
私はDataframe
使ってパンダ0.17.1とPython 2.7.6にこれらの値をロードしました。ここでは、私がこれまで持っているものです。
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
これは動作しますが、私は(私はいくつかの非常に大規模な(> 10ギガバイト)のデータセットで働いている)より速くそれを行うための方法がなければならないと思います。誰にも何か提案はありますか?
- 私はこれが正しく動作するかどうかとは思わないI 'main、randlc、randlc、makea、makea'のようなものがあります。最初の 'makea'は2番目のグループにグループ化されますね。 – tonysdg
はい、あなたは正しいです。 – jezrael
行番号をグループ化された列にコピーすることは可能でしょうか?これにより、一意の識別子が作成され、埋め戻すことができます。 – tonysdg