Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.34 KB | None | 0 0
  1. import numpy as np
  2. import pandas as pd
  3.  
  4.  
  5. def load_csv():
  6.     return pd.read_csv("H:\Misc\MSc\Data\ForDiscrete.csv")
  7.  
  8. def create_quartiles(df):
  9.     curr_df = df
  10.  
  11.     for each_variable in curr_df:
  12.         values = curr_df[each_variable]
  13.  
  14.         # find quartiles
  15.         Q1 = np.percentile(values,25)
  16.         Q2 = np.percentile(values,50)
  17.         Q3 = np.percentile(values,75)
  18.  
  19.         # replace values with quartile range
  20.         factor_df = pd.DataFrame(curr_df[each_variable])
  21.  
  22.         for index,row in factor_df.iterrows():
  23.             if float(row) <= Q1:
  24.                 factor_df.loc[index, each_variable] = 1
  25.             elif float(row) >= Q1 and float(row) <= Q2:
  26.                 factor_df.loc[index, each_variable] = 2
  27.             elif float(row) >= Q2 and float(row) <= Q3:
  28.                 factor_df.loc[index, each_variable] = 3
  29.             elif float(row) >= Q3:
  30.                 factor_df.loc[index, each_variable] = 4
  31.             else:
  32.                 print('check error')
  33.  
  34.         curr_df[each_variable] = factor_df[each_variable].values
  35.  
  36.     return curr_df
  37.  
  38. def write_to_csv(df):
  39.     loc_df = pd.DataFrame(df)
  40.     print(loc_df.to_string())
  41.     #loc_df.to_csv(path_or_buf="C:\\Users\\cdogan\\DataOutput")
  42.  
  43.  
  44. if __name__ == '__main__':
  45.     discrete_df = create_quartiles(load_csv())
  46.     write_to_csv(discrete_df)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement