生成无功补偿计算容量系数表

学习Python数据处理的过程中,正好遇到了一个工作中的问题,测试下,将过程记录下来。

生成无功补偿计算容量系数表

#导入模块

import numpy as np

import pandas as pd

import math


#生成一张空表,index为[0.50,0.99],columns为[0.9,0.99]

row1=np.array(range(50,100))/100

#row1=row1/10

column1=np.array(range(90,100))/100

print(row1,column1)

/*  结果展示

    [0.5  0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6  0.61 0.62 0.63

    0.64 0.65 0.66 0.67 0.68 0.69 0.7  0.71 0.72 0.73 0.74 0.75 0.76 0.77

    0.78 0.79 0.8  0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.9  0.91

    0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99] [0.9  0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99]

*/

var_table=pd.DataFrame(index=row1,columns=column1)

print(var_table)

/* 结果展示

               0.90 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99

    0.50  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.51  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.52  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.53  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.54  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.55  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.56  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.57  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.58  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.59  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.60  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.61  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.62  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.63  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.64  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.65  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.66  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.67  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.68  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.69  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.70  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.71  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.72  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.73  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.74  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.75  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.76  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.77  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.78  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.79  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.80  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.81  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.82  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.83  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.84  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.85  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.86  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.87  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.88  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.89  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.90  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.91  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.92  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.93  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.94  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.95  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.96  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.97  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.98  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

    0.99  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

*/

#计算功率因数变更补偿系数:tan(theta1)-tan(theta2),theta1,theta2分别为变更前后的功率因数角


for i in row1:                                                #分别对每一行每一列的每个数值进行计算

    for j in column1:                                         

        if i>=j:                                            #若功率因数更换前大于等于更换后,则不做计算

            pass

        else:

            var_table.loc[i,j] = round((math.tan(math.acos(i))-math.tan(math.acos(j))),3) 

#对计算值保留三位小数,更改指定位的数值要用.loc[i,j]

print(var_table)

/* 结果展示

          0.90  0.91  0.92  0.93  0.94  0.95  0.96  0.97  0.98  0.99

    0.50  1.248  1.276  1.306  1.337  1.369  1.403  1.44  1.481  1.529  1.59

    0.51  1.202  1.231  1.261  1.291  1.324  1.358  1.395  1.436  1.484  1.544

    0.52  1.158  1.187  1.217  1.247  1.28  1.314  1.351  1.392  1.44    1.5

    0.53  1.116  1.144  1.174  1.205  1.237  1.271  1.308  1.349  1.397  1.458

    0.54  1.074  1.103  1.133  1.163  1.196  1.23  1.267  1.308  1.356  1.416

    0.55  1.034  1.063  1.092  1.123  1.156  1.19  1.227  1.268  1.315  1.376

    0.56  0.995  1.024  1.053  1.084  1.116  1.151  1.188  1.229  1.276  1.337

    0.57  0.957  0.986  1.015  1.046  1.079  1.113  1.15  1.191  1.238  1.299

    0.58  0.92  0.949  0.979  1.009  1.042  1.076  1.113  1.154  1.201  1.262

    0.59  0.884  0.913  0.942  0.973  1.006  1.04  1.077  1.118  1.165  1.226

    0.60  0.849  0.878  0.907  0.938  0.97  1.005  1.042  1.083  1.13  1.191

    0.61  0.815  0.843  0.873  0.904  0.936  0.97  1.007  1.048  1.096  1.157

    0.62  0.781  0.81  0.839  0.87  0.903  0.937  0.974  1.015  1.062  1.123

    0.63  0.748  0.777  0.807  0.837  0.87  0.904  0.941  0.982  1.03  1.09

    0.64  0.716  0.745  0.775  0.805  0.838  0.872  0.909  0.95  0.998  1.058

    0.65  0.685  0.714  0.743  0.774  0.806  0.84  0.877  0.919  0.966  1.027

    0.66  0.654  0.683  0.712  0.743  0.775  0.81  0.847  0.888  0.935  0.996

    0.67  0.624  0.652  0.682  0.713  0.745  0.779  0.816  0.857  0.905  0.966

    0.68  0.594  0.623  0.652  0.683  0.715  0.75  0.787  0.828  0.875  0.936

    0.69  0.565  0.593  0.623  0.654  0.686  0.72  0.757  0.798  0.846  0.907

    0.70  0.536  0.565  0.594  0.625  0.657  0.692  0.729  0.77  0.817  0.878

    0.71  0.508  0.536  0.566  0.597  0.629  0.663    0.7  0.741  0.789  0.849

    0.72  0.48  0.508  0.538  0.569  0.601  0.635  0.672  0.713  0.761  0.821

    0.73  0.452  0.481  0.51  0.541  0.573  0.608  0.645  0.686  0.733  0.794

    0.74  0.425  0.453  0.483  0.514  0.546  0.58  0.617  0.658  0.706  0.766

    0.75  0.398  0.426  0.456  0.487  0.519  0.553  0.59  0.631  0.679  0.739

    0.76  0.371    0.4  0.429  0.46  0.492  0.526  0.563  0.605  0.652  0.713

    0.77  0.344  0.373  0.403  0.433  0.466    0.5  0.537  0.578  0.626  0.686

    0.78  0.318  0.347  0.376  0.407  0.439  0.474  0.511  0.552  0.599  0.66

    0.79  0.292  0.32  0.35  0.381  0.413  0.447  0.484  0.525  0.573  0.634

    0.80  0.266  0.294  0.324  0.355  0.387  0.421  0.458  0.499  0.547  0.608

    0.81  0.24  0.268  0.298  0.329  0.361  0.395  0.432  0.473  0.521  0.581

    0.82  0.214  0.242  0.272  0.303  0.335  0.369  0.406  0.447  0.495  0.556

    0.83  0.188  0.216  0.246  0.277  0.309  0.343  0.38  0.421  0.469  0.53

    0.84  0.162  0.19  0.22  0.251  0.283  0.317  0.354  0.395  0.443  0.503

    0.85  0.135  0.164  0.194  0.225  0.257  0.291  0.328  0.369  0.417  0.477

    0.86  0.109  0.138  0.167  0.198  0.23  0.265  0.302  0.343  0.39  0.451

    0.87  0.082  0.111  0.141  0.172  0.204  0.238  0.275  0.316  0.364  0.424

    0.88  0.055  0.084  0.114  0.145  0.177  0.211  0.248  0.289  0.337  0.397

    0.89  0.028  0.057  0.086  0.117  0.149  0.184  0.221  0.262  0.309  0.37

    0.90    NaN  0.029  0.058  0.089  0.121  0.156  0.193  0.234  0.281  0.342

    0.91    NaN    NaN  0.03  0.06  0.093  0.127  0.164  0.205  0.253  0.313

    0.92    NaN    NaN    NaN  0.031  0.063  0.097  0.134  0.175  0.223  0.284

    0.93    NaN    NaN    NaN    NaN  0.032  0.067  0.104  0.145  0.192  0.253

    0.94    NaN    NaN    NaN    NaN    NaN  0.034  0.071  0.112  0.16  0.22

    0.95    NaN    NaN    NaN    NaN    NaN    NaN  0.037  0.078  0.126  0.186

    0.96    NaN    NaN    NaN    NaN    NaN    NaN    NaN  0.041  0.089  0.149

    0.97    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN  0.048  0.108

    0.98    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN  0.061

    0.99    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN

*/

对比表格如下