简体   繁体   中英

Why can't I replace null values in this excel sheet?

In my code, I run a t-test which sometimes yields "NaN" or "nan" when running a test on two zero value groups. I have tried making new data frames, tried replacing using.replace and also tried fillna() but nothing was successful. I get errors when also trying to define a new dataframe or read the file again after adding new calculations.

How do I replace the nulls and "nan" in these files: "significant_report2.xls" or "quant_report2.xls"

import json
import os, sys
import numpy as np
import pandas as pd
import scipy.stats 

  output_report = "quant_report2.xls"
    significant_report = "significant_report2.xls"
    output_report_writer = open(output_report, "w")
    significant_writer = open(significant_report, "w")
    
    
    # setup samples grouped by control and treatment
    header = []
    for idx in control_indices:
        header.append(quant_columns[idx])
    for idx in treatment_indices:
        header.append(quant_columns[idx])
        
    output_report_writer.write("Feature\t%s\tP-value\tctrl_means\tctrl_stdDev\ttx_means\ttx_stdDev\n"%"\t".join(header))
    significant_writer.write("Feature\t%s\tP-value\tctrl_means\tctrl_stdDev\ttx_means\ttx_stdDev\n"%"\t".join(header))
    feature_list = list(quantitative_data_frame.index)
    for feature_idx in range(len(feature_list)):
            feature_name = feature_list[feature_idx]
            control_values = quantitative_data_frame.iloc[feature_idx, control_indices]
            treatment_values = quantitative_data_frame.iloc[feature_idx, treatment_indices]
            ttest_stat, ttest_pvalue = scipy.stats.ttest_ind(control_values, treatment_values, equal_var=False)
            ctrl_means = scipy.mean(control_values,0)
            ctrl_stdDev = scipy.stats.tstd(control_values)
            tx_means= scipy.mean(treatment_values,axis=0)
            tx_stdDev1 = scipy.stats.tstd(treatment_values) 
            output_report_writer.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n"%(feature_name,                          
                                            "\t".join([str(x) for x in list(control_values)]),      
                                            "\t".join([str(x) for x in list(treatment_values)]), ttest_pvalue, ctrl_means,ctrl_stdDev,tx_means,tx_stdDev))
            significant_writer.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n"%(feature_name,"\t".join([str(x) for x in list(control_values)]), "\t".join([str(x) for x in list(treatment_values)]),ttest_pvalue,ctrl_means,ctrl_stdDev,tx_means,tx_stdDev)) 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM