python datafram中的值错误

2024-04-26 04:46:21 发布

您现在位置:Python中文网/ 问答频道 /正文

for rows in capacity1:
     if capacity1['value'] <80 & (capacity1['metric']=='ENT_CORE','UTIL_CPU','ENT_CPU')).item():
         capacity1['root_cause']="CPU"
    elif capacity1['value']<80 & (capacity1['metric']=='FS_CACHE','FREE','PINNED','PAGE_OUT','PAGE_SPACE')).item():
        capacity1['root_cause']="MEMORY"
    elif capacity['value']<80 & (capacity1['metric']=='REC_BYTES','TRANS_BYTES','REC_BYTESS','TRANS_BYTESS')).item():
         capacity1['root_cause']="NETWORK"
    else:
        capacity1['root_cause']= "OTHER"

Error: ValueError: can only convert an array of size 1 to a Python scalar\

无法修复此错误。在

要求:基于价值和指标,我需要指定根本原因。在


Tags: transforbytesvaluepagerootcpuitem
1条回答
网友
1楼 · 发布于 2024-04-26 04:46:21

使用^{}将重复条件分配给m1等变量,以获得更好的性能:

m1 = capacity1['value'] < 80
m2 = capacity1['metric'].isin(['ENT_CORE','UTIL_CPU','ENT_CPU'])
m3 = capacity1['metric'].isin(['FS_CACHE','FREE','PINNED','PAGE_OUT','PAGE_SPACE'])
m4 = capacity1['metric'].isin(['REC_BYTES','TRANS_BYTES','REC_BYTESS','TRANS_BYTESS'])

condlist = [m1 & m2, m1 & m3, m1 & m4]
choicelist = ["CPU", "MEMORY", "NETWORK"]
capacity1['root_cause'] = np.select(condlist, choicelist, default="OTHER")

相关问题 更多 >