python统计分析-因子分析

 

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# <editable>

def execute():
    # <editable>
    '''
    载入模块
    '''
    from sklearn.decomposition import FactorAnalysis
    import numpy as np
    import pandas as pd
    from sqlalchemy import create_engine
    '''
    连接数据库
    '''
    engine = create_engine('mysql+pymysql://root:123123qwe@127.0.0.1:3306/analysis')
    '''
    选择目标数据
    '''
    params = {
        "columns": "SUNACTIVITY",
        "n_components": 1,
        "max_iter": 100,    # default=1000
    }
    inputs = {"table": '纯随机性检验'}
    data_sql = 'select ' + params['columns'] + ' from ' + inputs['table']
    data_in = pd.read_sql_query(data_sql, engine)
    print(data_in)

    '''
    因子分析
    '''
    data_in = data_in.select_dtypes(include=['number'])  # 筛选数值型数据
    fit = FactorAnalysis(n_components=int(params['n_components']), max_iter=int(params['max_iter'])).fit_transform(
        data_in)
    data_out = pd.DataFrame(fit)
    data_out = np.around(data_out, decimals=4)
    '''
    将结果写出
    '''
    print(data_out)
    '''
    数据示例
            SUNACTIVITY
    0           5.0
    1          11.0
    2          16.0
    3          23.0
    4          36.0
    5          40.4
    6          29.8
    7          15.2
    8           7.5
    9           2.9
    10         83.4
    11         47.7
    12         47.8
    13         30.7
    14         12.2
    15         40.4
    16         29.8
    17         15.2
    18          7.5
    19          2.9
    20         12.6
             0
    0  -1.0104
    1  -0.7014
    2  -0.4439
    3  -0.0834
    4   0.5861
    5   0.8127
    6   0.2668
    7  -0.4851
    8  -0.8816
    9  -1.1185
    10  3.0273
    11  1.1887
    12  1.1938
    13  0.3132
    14 -0.6396
    15  0.8127
    16  0.2668
    17 -0.4851
    18 -0.8816
    19 -1.1185
    20 -0.6190
    '''

# </editable>


if __name__ == '__main__':
    execute()

 

posted @ 2021-04-22 11:35  我当道士那儿些年  阅读(398)  评论(0编辑  收藏  举报