ValueError:在python中数组的长度必须相同

ValueError:在python中数组的长度必须相同,python,dataframe,Python,Dataframe,我尝试了不同的可能性来找出错误的原因。但没有找到错误的原因。请问我的代码出了什么问题 def businesslogic(dirs, userpath): data = {} for fold in dirs: files = os.listdir(fold) if 'Test.txt' in files: with open(os.path.join(fold,'Test.txt'),'r') as te:

我尝试了不同的可能性来找出错误的原因。但没有找到错误的原因。请问我的代码出了什么问题

def businesslogic(dirs, userpath):
    data = {}
    for fold in dirs:
        files = os.listdir(fold)
        if 'Test.txt' in files:
            with open(os.path.join(fold,'Test.txt'),'r') as te:
                lines = [line.rstrip('\n') for line in te.readlines()]
        else:
            print('Test.txt does not exist')

        rows = [value.split(';')[0] for value in lines]
        data[fold] = [value.split(';')[1] for value in lines]

    df = pd.DataFrame.from_dict(data)---->>>ValueError: arrays must all be same length

    df.index = rows
    cols = list(df.columns.values)

    req = df.loc[['TubeType', 'Digits']]
    req = req[cols].astype(int)

由于文件夹的文件数不一定相同,因此会出现此错误。使用您的格式,每个文件夹都表示为一列。所有文件夹中的第一个文件将位于第一行,第二个文件位于第二行,以此类推。。。当您在两个不同的文件夹中有不同数量的文件时,就会出现问题。一个特定文件夹需要10行(因为它包含10个文件),而另一个文件夹只需要8行。熊猫认为这是输入错误

如果您想将所有信息放在同一行中,您可以这样做:

# Example a data dict where folders contain different number of files
data= {'folder1' : ['file1', 'file2'], 'folder2' : ['file3'] }

pd.DataFrame({x : [[y for y in data[x]]] for x in data})

输出:

          folder1  folder2
0  [file1, file2]  [file3]

由于文件夹的文件数不一定相同,因此会出现此错误。使用您的格式,每个文件夹都表示为一列。所有文件夹中的第一个文件将位于第一行,第二个文件位于第二行,以此类推。。。当您在两个不同的文件夹中有不同数量的文件时,就会出现问题。一个特定文件夹需要10行(因为它包含10个文件),而另一个文件夹只需要8行。熊猫认为这是输入错误

如果您想将所有信息放在同一行中,您可以这样做:

# Example a data dict where folders contain different number of files
data= {'folder1' : ['file1', 'file2'], 'folder2' : ['file3'] }

pd.DataFrame({x : [[y for y in data[x]]] for x in data})

输出:

          folder1  folder2
0  [file1, file2]  [file3]

数据字典的一个或多个移动列表具有不同的长度。它们都必须具有相同的长度。数据字典的一个或多个移动列表具有不同的长度。它们都必须具有相同的长度。