Saya memiliki daftar kerangka data, masing-masing dengan bentuk yang sama: 24783 x 89731. Ada 6 di antaranya, dalam list, dfs

Tujuannya adalah, untuk setiap kolom yang bukan kolom target, kalikan kolom lainnya dengan target. Jadi saya memiliki loop ganda seperti:

for df in dfs:
    for col in df.columns:
        if col != 'target':
            df[col] *= df['target']
        else:
            continue

Namun, itu sangat tidak efisien, karena saya membutuhkan waktu berjam-jam untuk memproses data sebanyak ini (sejauh ini 1,5 jam).

Apakah saya dapat menggunakan lambda atau ekspres serupa untuk mempercepat ini, atau meningkatkan efisiensi saya?

0
artemis 18 Juni 2020, 03:23

1 menjawab

Jawaban Terbaik

Anda dapat mencoba mengurangi satu untuk loop

for df in dfs:
    df.update(df.drop('target',axis=1).mul(df.target,axis=0))
1
BENY 18 Juni 2020, 00:26