PatsyError: Несоответствие числа строк между аргументом данных и столбцом (statsmodels) - PullRequest
0 голосов
/ 07 ноября 2019

Я работаю со статистическими моделями, использующими формулы в стиле R с пакетом Patsy, и получаю сообщение об ошибке, из-за которого у меня не получается ни голов, ни хвостов, любые советы или рекомендации будут весьма полезны.

PatsyError: Несоответствие числа строк между аргументом данных и C ('Industry_Banking & CapitalMarkets') (8137 против 1)

В DataFrame действительно есть 8137 строк и нет пропущенных данных

полный код ниже

mixed = smf.mixedlm("""count_SoldServiceName ~ date_int + AzureActiveEngagementCount + AzureEngagementPartnerCount 
                     + DCount_learning_path_name + Industry_Automotive + C('Industry_Banking&CapitalMarkets') + C('Industry_Chemicals&Agrochemicals') + Industry_CivilianGovernment
                     + Industry_ConsumerGoods + C('Industry_Defense&Intelligence') + Industry_DiscreteManufacturing + Industry_Energy + Industry_Gaming 
                     + Industry_HealthPayor + Industry_HealthProvider + Industry_HigherEducation + Industry_Insurance + C('Industry_Media&Entertainment') + Industry_Nonprofit 
                     + Industry_PartnerProfessionalServices + Industry_Pharmaceuticals + C('Industry_Primary&SecondaryEdu/K-12') + Industry_ProfessionalServices 
                     + C('Industry_PublicSafety&Justice') + Industry_Retailers + Industry_SmartSpaces + Industry_Telecommunications +  C('Industry_Travel,Transport&Hospitality') 
                     + Industry_other + InvestmentArea_AA + InvestmentArea_ACO + InvestmentArea_CSE + InvestmentArea_CSM + InvestmentArea_ECIF + InvestmentArea_FT 
                     + InvestmentArea_GBB + InvestmentArea_PAL + active_flag_int + annual_sales_in_us_dollars + commitment_int 
                     + completed_lp_learners + edx_number_completed_courses + employees_total + esi_offer_int
                     +  health_int + s500_int + segmentname_int + fundamentals_flag + role_based_flag"""                    
                     ,workloads_agg
                     ,groups=workloads_agg['tpid_sub']
                     ,exog_re=workloads_agg['date_int']
                     ,missing='drop'
                   ,use_sqrt=True)
mixed_fit = mixed_complete2.fit(method=['bfgs', 'lbfgs', 'cg','powell'])

1 Ответ

0 голосов
/ 07 ноября 2019

На случай, если кто-нибудь еще столкнется с этим. Решением было просто переименовать все столбцы и удалить все экземпляры специальных символов, таких как ',', '/', '&' и т. Д.

...