项目作者: ajh1143

项目描述 :
Creates permuted column headers for highly variable number of columns, populate indices based on defined ranges, generates statistical analyses of columns
高级语言: Python
项目地址: git://github.com/ajh1143/Pandas_Flexible_Matrix.git
创建时间: 2017-07-29T07:36:35Z
项目社区:https://github.com/ajh1143/Pandas_Flexible_Matrix

开源协议:

下载


Pandas Flexible Matrix

Imports

  1. from itertools import count, product, islice
  2. import pandas as pd
  3. import numpy as np
  4. import random
  5. import string

Class

  1. class MatrixPermutation(object)

User Input

  1. def UserPrompt(self):
  2. print("Hello, User.")
  3. print("\nPlease enter the number of rows in your dataset")
  4. user_rows = int(input())
  5. print("\nPlease enter the number of columns in your dataset")
  6. user_columns = int(input())
  7. return user_rows, user_columns

Generate Headers

  1. def ColumnHeaderGenerator(self):
  2. columns_headers = string.ascii_uppercase
  3. for each in count(1):
  4. for all in product(columns_headers, repeat=each):
  5. yield ''.join(all)

Generate Rows

  1. def RowGenerator(self, number_of_rows, row_length):
  2. rows_list = []
  3. for number in range(number_of_rows):
  4. group_list = []
  5. for value in range(row_length):
  6. value = random.randrange(1, 10000)
  7. group_list.append(value)
  8. rows_list.append(group_list)
  9. return rows_list

Generate DataFrame & Calculate Standard Deviation Per Group

  1. def DataFrameGenerator(self, Data, Headers):
  2. df = pd.DataFrame(np.array(Data), columns=Headers)
  3. print(df)
  4. print(np.std(df).round(2))

Running it

  1. if __name__ == '__main__':
  2. a = MatrixPermutation()
  3. size = a.UserPrompt()
  4. rows = size[0]
  5. cols = size[1]
  6. print("Rows = " + str(rows))
  7. print("Columns = " + str(cols))
  8. data_set = a.RowGenerator(rows, cols)
  9. headers = list(islice(a.ColumnHeaderGenerator(), cols))
  10. a.DataFrameGenerator(data_set, headers)