我正在运行一个很长的CSV文件下面的函数。函数每50行计算列MFE的Z分数。这50行中有一些只包含零,因此在计算Zscore时,程序会停止,因为它不能被零除。如何解决这个问题,而不是停止程序运行打印这些行的z分数0?在def doZscore(csv_file, n_random):
df = pd.read_csv(csv_file)
row_start = 0
row_end = n_random + 1
step = n_random + 1
zscore = []
while row_end <= len(df):
selected_rows = df['MFE'].iloc[row_start:row_end]
arr = []
for x in selected_rows:
arr.append(float(x))
scores = stats.zscore(arr)
for i in scores:
zscore.append(round(i, 3))
arr.clear()
row_start += step
row_end += step
df['Zscore'] = zscore
with open(csv_file, 'w') as f:
df.to_csv(f, index=False)
f.close()
return
我得到的错误是:
/s/software/anaconda/python3/lib/python3.7/site-packages/scipy/stats/统计:2253:RuntimeWarning:在true\u divide return(a-mns)/sstd中遇到无效值