2016-11-05 100 views
3

对.mp3链接的大列表进行迭代以获取元数据标签并将其保存到Excel文件中。结果出现这个错误。我感谢任何帮助。谢谢。Python Pandas ValueError数组必须全部相同长度

#print is_connected(); 

    # Create a Pandas dataframe from the data. 
df = pd.DataFrame({'Links' : lines ,'Titles' : titles , 'Singers': finalsingers , 'Albums':finalalbums , 'Years' : years}) 


    # Create a Pandas Excel writer using XlsxWriter as the engine. 
writer = pd.ExcelWriter(xlspath, engine='xlsxwriter') 

    # Convert the dataframe to an XlsxWriter Excel object. 
df.to_excel(writer, sheet_name='Sheet1') 
    #df.to_excel(writer, sheet_name='Sheet1') 


    # Close the Pandas Excel writer and output the Excel file. 
writer.save() 

Traceback (most recent call last): 
    File "mp.py", line 87, in <module> 
    df = pd.DataFrame({'Links' : lines ,'Titles' : titles , 'Singers': finalsingers , 'Albums':finalalbums , 'Years' : years}) 
    File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 266, in __init__ 
    mgr = self._init_dict(data, index, columns, dtype=dtype) 
    File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 402, in _init_dict 
    return _arrays_to_mgr(arrays, data_names, index, columns, dtype=dtype) 
    File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 5409, in _arrays_to_mgr 
    index = extract_index(arrays) 
    File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 5457, in extract_index 
    raise ValueError('arrays must all be same length') 
ValueError: arrays must all be same length 

回答

2

它告诉你数组(线,标题,finalsingers等)的长度不一样。您可以通过

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

测试这个这将显示您的数据格式错误,那么你就需要做一些调查到什么来纠正这种正确的方式是。

6

你可以做到这一点,以避免错误

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

这可能重复http://stackoverflow.com/questions/19736080/creating-dataframe-from-a-dictionary-where-entries-have-不同-长度 –

相关问题