在 pandas 中应用函数的替代方法
Alternative to apply function in pandas
我想以更有效的方式执行这个简单的转换。
df["amount"] = df.apply(
lambda row: 500 if row.amount > 500 else row.amount, axis=1
)
有什么想法吗?
您可以使用 pandas.Series.clip
:
df["amount"].clip(upper = 500)
np.clip(df["amount"], None, 500)
您也可以使用 np.where 以获得最大速度
# assumes df['amount'] has no na, use .fillna(0) if needed
df["amount"] = np.where(df['amount'].values > 500, df['amount'].values, None)
我想以更有效的方式执行这个简单的转换。
df["amount"] = df.apply(
lambda row: 500 if row.amount > 500 else row.amount, axis=1
)
有什么想法吗?
您可以使用 pandas.Series.clip
:
df["amount"].clip(upper = 500)
np.clip(df["amount"], None, 500)
您也可以使用 np.where 以获得最大速度
# assumes df['amount'] has no na, use .fillna(0) if needed
df["amount"] = np.where(df['amount'].values > 500, df['amount'].values, None)