如果条件为True,则为其他两列中最小的一列



如果df['freq']<10我想将"freq_new"中的所有值转换为df["freq_cell"]10之间的最小值

我试过这个,但它不起作用

df.loc[df['freq']<10,['freq_new']]=min((df["freq_cell"]/10),10)

您的代码语法不正确。IIUC,您可以使用loc来定位列"freq"小于10的位置,并使用clip:创建一个名为"freq_new"的新列,该列将是"freq_cell"和值10之间的最小值

df.loc[df.freq < 10, 'frec_new'] = df['freq_cell'].clip(upper=10)

RHS中的代码说:从freq_cell返回值,但如果它更大,则将其设置为10。所以最大值是10。

这里是

import pandas as pd
import numpy as np 
`df.loc[df['freq']>10,'freq_new']=np.minimum((df['freq_cell'].min()/10,10)),df['freq'])`

使用:

import numpy as np
df['freq_new'] = np.where(df['freq']<10, np.minimum((df["freq_cell"]/10),10), df['freq'])

最新更新