如何在CSV头和字典键之间循环操作

2024-09-28 21:16:57 发布

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

我有一个带有一组键和值的字典,还有一个带有列的CSV文件,它们的标题名与字典键相同。你知道吗

我需要应用公共函数,即如果具有键名称的标题行的值小于字典中定义的值,则在数据集中的新列中写入true。你知道吗

问题是,我需要为所有列创建一个循环,使标题名与键名匹配,并根据所有列行上键的值应用函数。你知道吗

下面的代码,如果我做了它没有外循环,但如果字典增加了它将是没有效率的方式。你知道吗

代码:

dict = {'RRC_SR%' : 99, 'RAB_SR%' : 97, 'UL_UE_Throughput' : 2, 'PS_CDR%' : 0.15, 'DL_UE_Throughput' : 17,
    'INTRA HO SR %' : 99}
kpi = pd.read_csv('KPIs for Triggering.csv')
kpi['RRC_SR Result'] = kpi.loc[:, 'RRC_SR%'].apply(lambda x:x>dict['RRC_SR%'])
kpi['RAB_SR Result'] = kpi.loc[:, 'RAB_SR%'].apply(lambda x:x>dict['RAB_SR%'])
kpi['UL_UE_Throughput Result'] = kpi.loc[:, 'UL_UE_Throughput'].apply(lambda x:x>dict['UL_UE_Throughput'])
kpi['PS_CDR Result'] = kpi.loc[:, 'PS_CDR%'].apply(lambda x:x>dict['PS_CDR%'])
kpi['DL_UE_Throughput Result'] = kpi.loc[:, 'DL_UE_Throughput'].apply(lambda x:x>dict['DL_UE_Throughput'])
kpi['INTRA HO SR Result'] = kpi.loc[:, 'INTRA HO SR %'].apply(lambda x:x>dict['INTRA HO SR %'])


Time    Object  DL_UE_Throughput    UL_UE_Throughput    PS_CDR% RAB_SR% RRC_SR% INTRA HO SR %
0:00    A_1 4.76    1.04    0.17    99.88   99.98   98.22
0:00    B_2 8.1 1.04    0.15    99.92   99.99   97.8
0:00    C_3 5.63    0.72    0.11    99.94   99.98   96.17
0:00    D_4 8.65    1.06    0.25    99.75   99.95   99.51
0:00    E_5 10.21   0.59    0.37    99.67   99.97   99.18
0:00    F_6 7.46    0.34    0.38    99.3    99.95   99.56
0:00    G_7 10.08   2.31    0.6 99.38   99.73   93.63
0:00    H_8 10.29   1.29    0.84    99.5    99.84   99.22
0:00    I_9 10.19   4.76    0.92    99.26   99.75   97.66
0:00    J_10    7.45    8.6 0.85    99.29   99.72   98.55

Tags: lambdaresultullocdictpskpiapply