尝试将字典获取到pandas dataframe,python时出错

2024-06-08 15:03:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到“Pandas ValueError数组的长度必须相同” 在开始之前,我检查了类似问题的答案,人们建议使用类似的方法:

DataFrame(dict([ (k,Series(v)) for k,v in d.iteritems() ]))

如果字典或中只有两个值

^{pr2}$

但他们都不为我工作。我的代码所做的是,转到目录中的文件,获取名称和上次修改时间,打开文件并在名为phash的函数中使用它并返回一个值。我想phash函数可能有问题,也许有时候它会返回一个空值。在

在我的案例中,数据是这样的:

raw_data = {}
hash_11 = []
time_1 = []
file_name_1 = []
for file in date_file_list:
    try:
        #print(file[1])
        y = file[1]
        file_name = os.path.basename(y) # extract just the filename or #file_name = os.path.split(file[1])
        file_name = file_name.split('_-_')[0]
        file_name_1.append(file_name)
        #print(file_name)
        # convert date tuple to MM/DD/YYYY HH:MM:SS format
        #file_date = time.strftime("%m/%d/%y %H:%M:%S", file[0])
        time = file[0]
        time_1.append(time)
        img = Image.open(str(file[1]))
        hash_1 = imagehash.dhash(img) 
        hash_11.append(hash_1)
        #hash_1 = str(hash_1)
        #data = [hash_1, time, file_name]
        #hamming_list.append(data)
        #print(file_name, hash_1, file_date)
        data ={'hash_1': hash_11,'time': time_1, 'file_name': file_name_1}
        raw_data.update(data)
    except:
         pass

df = pd.DataFrame(raw_data, columns = ['hash_1', 'time','file_name'])

Tags: 文件函数nameindataframefordatadate