Pandas 如何在数据帧上的行子集上进行操作? def getDF(阈值): df=pd.read\u pickle(文件名) df['threshold']=浮动(阈值) df.set_索引(“日期”) df['normal']=[行的任何值]>df['threshold']

Pandas 如何在数据帧上的行子集上进行操作? def getDF(阈值): df=pd.read\u pickle(文件名) df['threshold']=浮动(阈值) df.set_索引(“日期”) df['normal']=[行的任何值]>df['threshold'],pandas,Pandas,我有上面的函数,如果任何浮动,列0-9大于阈值,则需要设置异常列。我知道如何在一个专栏中这样做,但在多个专栏中又如何呢 我也许可以用蛮力做这件事,但我相信有一种方法可以做得更快 谢谢您的时间。您可以先计算行最大值,然后检查此最大值是否大于阈值: df['anomaly'] = df[['column1', 'column2', 'column3']].max(axis=1) > df['threshold'] df['normal']=df['column1','column2','col

我有上面的函数,如果任何浮动,
列0-9
大于阈值,则需要设置
异常
列。我知道如何在一个专栏中这样做,但在多个专栏中又如何呢

我也许可以用蛮力做这件事,但我相信有一种方法可以做得更快


谢谢您的时间。

您可以先计算行最大值,然后检查此最大值是否大于阈值:

df['anomaly'] = df[['column1', 'column2', 'column3']].max(axis=1) > df['threshold']
df['normal']=df['column1','column2','column3']].max(axis=1)>df['threshold']
但是,如果阈值是单个值,则可以简单地使用该值本身:

df['anomaly'] = df[['column1', 'column2', 'column3']].max(axis=1) > threshold
df['normal']=df['column1','column2','column3']].max(axis=1)>阈值
或对于前十列:

df['anomaly'] = df.iloc[:,:10].max(axis=1) > threshold

df['normal']=df.iloc[:,:10].max(axis=1)>阈值
您可以首先计算行最大值,然后检查该最大值是否大于阈值:

df['anomaly'] = df[['column1', 'column2', 'column3']].max(axis=1) > df['threshold']
df['normal']=df['column1','column2','column3']].max(axis=1)>df['threshold']
但是,如果阈值是单个值,则可以简单地使用该值本身:

df['anomaly'] = df[['column1', 'column2', 'column3']].max(axis=1) > threshold
df['normal']=df['column1','column2','column3']].max(axis=1)>阈值
或对于前十列:

df['anomaly'] = df.iloc[:,:10].max(axis=1) > threshold

df['normal']=df.iloc[:,:10].max(axis=1)>threshold
0-9列没有名称,如果有帮助的话,总共有12列,我不想检查名为'date'和'threshold'的列,我猜一旦分配了'normal'。有人说除了[这些]以外的所有列吗?@SwimMaster:你可以对前十列使用
.iloc[:,:10]
。列0-9没有名称,如果有帮助的话,总共有12列,我不想检查名为“date”和“threshold”的列,我猜一旦指定了“normality”。有人说除了[这些]以外的所有列吗?@SwimMaster:您可以对前十列使用
.iloc[:,:10]