Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menilai Ungkapan Secara Dinamik dalam Panda?
Anda mahu melakukan operasi dinamik pada DataFrames menggunakan pd.eval, termasuk penggantian pembolehubah dan aritmetik kompleks .
1. Menggunakan pd.eval()
# Import necessary libraries import pandas as pd import numpy as np # Create sample DataFrames np.random.seed(0) df1 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD')) df2 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD')) # Evaluate expression using a variable x = 5 result = pd.eval("df1.A + (df1.B * x)") # Alternatively, assign the result to a new column pd.eval("df2['D'] = df1.A + (df1.B * x)")
Argumen berikut boleh digunakan untuk mengoptimumkan prestasi pd.eval:
Anda boleh menetapkan hasil pd.eval terus kepada DataFrame menggunakan hujah sasaran .
df3 = pd.DataFrame(columns=list('FBGH'), index=df1.index) pd.eval("df3['B'] = df1.A + df2.A", target=df3) # In-place modification pd.eval("df2.B = df1.A + df2.A", target=df2, inplace=True)
# Evaluate expression in df1 result = df1.eval("A + B") # Perform variable substitution df1.eval("A > @x", local_dict={'x': 5})
Walaupun pd.eval sesuai untuk menilai ungkapan, df.query() adalah lebih ringkas dan cekap untuk bersyarat pertanyaan, kerana ia menapis DataFrame berdasarkan ungkapan Boolean.
# Query df1 df1.query("A > B")
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menilai Ungkapan Secara Dinamik dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!