Why does 'DataFrame' object cannot be interpreted as an integer?

Viewed 6539
vif["vif_values"] = [variance_inflation_factor(cancer_x_pca1_df.values, i) for i in range(cancer_x_pca1_df)]

Error is :

TypeError Traceback (most recent call last) in 1 #vif["vif_values"] = [variance_inflation_factor(cancer_x_pca1_df.values, i) for i in range(cancer_x_pca_df_shape1)] ----> 2 vif["vif_values"] = [variance_inflation_factor(cancer_x_pca1_df.values, i) for i in range(cancer_x_pca1_df,0)] 3 vif["Variables"] = cancer_x_pca1_df.columns

TypeError: 'DataFrame' object cannot be interpreted as an integer

1 Answers

Because a range has to be integers, and you are telling it that a dataframe is a range. I had this problem last week. Just change it from

for i in range(cancer_x_pca1_df)]

To

for i in range(len(cancer_x_pca1_df))]

Or you might be able to just do

for i in (cancer_x_pca1_df)]

Related