#!/usr/bin/env python
# -*- coding:utf-8 -*-
#
def execute():
#
'''
载入模块
'''
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
'''
#
if __name__ == '__main__':
execute()