To figure out the “ValueError” understand DataFrame and “scalar values” is needed.

To create a Dataframe from **dict**, **at least one Array** is needed.

IMO, **array itself is indexed**.

Therefore, if there is an array-like value there is no need to specify index.

e.g. The index of each element in [‘a’, ‘s’, ‘d’, ‘f’] are 0,1,2,3 separately.

```
df_array_like = pd.DataFrame({
'col' : 10086,
'col_2' : True,
'col_3' : "'at least one array'",
'col_4' : ['one array is arbitrary length', 'multi arrays should be the same length']})
print("df_array_like: \n", df_array_like)
```

Output:

```
df_array_like:
col col_2 col_3 col_4
0 10086 True 'at least one array' one array is arbitrary length
1 10086 True 'at least one array' multi arrays should be the same length
```

As shows in the output, the index of the DataFrame is 0 and 1.

Coincidently same with the index of the array [‘one array is arbitrary length’, ‘multi arrays should be the same length’]

If comment out the ‘col_4’, it will raise

ValueError(“If using all scalar values, you must pass an index”)

Cause **scalar value** (integer, bool, and string) **does not have index**

Note that **Index(…) must be called with a collection of some kind**

Since index used to locate all the rows of DataFrame

index should be an array. e.g.

```
df_scalar_value = pd.DataFrame({
'col' : 10086,
'col_2' : True,
'col_3' : "'at least one array'"
}, index = ['fst_row','snd_row','third_row'])
print("df_scalar_value: \n", df_scalar_value)
```

Output:

```
df_scalar_value:
col col_2 col_3
fst_row 10086 True 'at least one array'
snd_row 10086 True 'at least one array'
third_row 10086 True 'at least one array'
```

I’m a beginner, I’m learning python and English. 👀