unable to write content in csv filw

Rahul Gupta rahulgupta100689 at gmail.com
Mon Apr 27 12:14:02 EDT 2020


FOLLWOING IS MY CODE
import pandas as pd
import csv
from sklearn.preprocessing import LabelEncoder
from sklearn.feature_selection import chi2
with open("D:\PHD\obranking\\test_chi.csv", 'w') as csvfilew1:
    fields = ['index', 'feature name', 'p_value']
    csvwriter1 = csv.DictWriter(csvfilew1, fieldnames=fields)
    csvwriter1.writeheader()
    for i in range(1, 5502):
        csv_data = dict().fromkeys(fields)
        csv_data['index'] = i
        cols =[]
        cols.append(int(0))
        cols.append(int(i))

        df = pd.read_csv("D:\PHD\obranking\\demo.csv", usecols=cols)
        df.apply(LabelEncoder().fit_transform)
        X = df.drop(labels='label', axis=1)
        Y = df['label']
        chi_scores = chi2(X, Y)
        if(chi_scores[1] < 0.05):
            f_name = str(X.columns)
            f_name = f_name[8:-19]
            csv_data['feature name'] = f_name
            p_val = str(chi_scores[1])
            p_val = p_val[1:-1]
            csv_data['p_value'] = p_val
            print(csv_data)
            csvwriter1.writerow(csv_data)
            #print(csv_data)
            #print(f_name + p_val)
            #print(str(X.col + str(chi_scores[1]))
test_chi.csv is created but it remains empty after execution of the code. although when i am printing csv_data it gets printed but not written in csv using writerow(csv_data). Also there are no field names in the csv even writeheader() seems to not work. I am confused what is wrong. Could someone help????


More information about the Python-list mailing list