问题描述
使用 factor_analyzer 时出现以下错误。 我能够从这里得到这个例子来工作。 https://www.datacamp.com/community/tutorials/introduction-factor-analysis 我看到的主要区别是它们的值都是数字。我的是字符串。
from factor_analyzer.factor_analyzer import calculate_bartlett_sphericity
chi_square_value,p_value=calculate_bartlett_sphericity(df)
chi_square_value,p_value
(-0.0,0.0)
from factor_analyzer.factor_analyzer import calculate_kmo
kmo_all,kmo_model=calculate_kmo(df)
ValueError Traceback (most recent call last)
~\anaconda3\lib\site-packages\pandas\core\internals\managers.py in create_block_manager_from_blocks(blocks,axes)
1664
-> 1665 mgr = BlockManager(blocks,axes)
1666 mgr._consolidate_inplace()
~\anaconda3\lib\site-packages\pandas\core\internals\managers.py in __init__(self,blocks,axes,do_integrity_check)
148 if do_integrity_check:
--> 149 self._verify_integrity()
150
~\anaconda3\lib\site-packages\pandas\core\internals\managers.py in _verify_integrity(self)
325 if block.shape[1:] != mgr_shape[1:]:
--> 326 raise construction_error(tot_items,block.shape[1:],self.axes)
327 if len(self.items) != tot_items:
ValueError: Empty data passed with indices specified.
During handling of the above exception,another exception occurred:
ValueError Traceback (most recent call last)
<ipython-input-31-af263734b3bc> in <module>
1 from factor_analyzer.factor_analyzer import calculate_kmo
----> 2 kmo_all,kmo_model=calculate_kmo(df)
~\anaconda3\lib\site-packages\factor_analyzer\factor_analyzer.py in calculate_kmo(data)
143 corr_sum = corr.sum(0)
144 kmo_per_item = corr_sum / (corr_sum + partial_corr_sum)
--> 145 kmo_per_item = pd.DataFrame(kmo_per_item,146 index=data.columns,147 columns=['KMO'])
~\anaconda3\lib\site-packages\pandas\core\frame.py in __init__(self,data,index,columns,dtype,copy)
495 mgr = init_dict({data.name: data},dtype=dtype)
496 else:
--> 497 mgr = init_ndarray(data,dtype=dtype,copy=copy)
498
499 # For data is list-like,or Iterable (will consume into list)
~\anaconda3\lib\site-packages\pandas\core\internals\construction.py in init_ndarray(values,copy)
232 block_values = [values]
233
--> 234 return create_block_manager_from_blocks(block_values,[columns,index])
235
236
~\anaconda3\lib\site-packages\pandas\core\internals\managers.py in create_block_manager_from_blocks(blocks,axes)
1670 blocks = [getattr(b,"values",b) for b in blocks]
1671 tot_items = sum(b.shape[0] for b in blocks)
-> 1672 raise construction_error(tot_items,blocks[0].shape[1:],e)
1673
1674
ValueError: Empty data passed with indices specified.
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)