Python Pandas ValueError Arrays Must be All Same Length

Python Pandas ValueError Arrays Must be All Same Length

you can do this to avoid that error

a = {Links : lines ,Titles : titles , Singers: finalsingers , Albums:finalalbums , Years : years}
df = pd.DataFrame.from_dict(a, orient=index)
df = df.transpose()

Explanation:

This creates the DataFrame as each key (e.g. Links) was a row and like this the missing values are actually missing columns which is no problem for pandas (only missing rows lead to ValueError during creation) After that you transpose the DataFrame (flip the axis) and make the rows to columns, which results the DataFrame you initially wanted.

Its telling you that the arrays (lines, titles, finalsingers, etc…) are not of the same length. You can test this by

print(len(lines), len(titles), len(finalsingers)) # Print all of them out here

This will show you which data is malformed and then youll need to do some investigating into what the right way to correct this is.

Python Pandas ValueError Arrays Must be All Same Length

You can pad the shortest lists with empty elements:

def pad_dict_list(dict_list, padel):
    lmax = 0
    for lname in dict_list.keys():
        lmax = max(lmax, len(dict_list[lname]))
    for lname in dict_list.keys():
        ll = len(dict_list[lname])
        if  ll < lmax:
            dict_list[lname] += [padel] * (lmax - ll)
    return dict_list

Leave a Reply

Your email address will not be published. Required fields are marked *