Python 如何有效地从列表列表中创建数据帧?

Python 如何有效地从列表列表中创建数据帧?,python,pandas,dataframe,csv,multi-index,Python,Pandas,Dataframe,Csv,Multi Index,这似乎是一个奇怪的问题,但我遇到了一个问题,我想让多个csv文件连接多个测量点,每个测量点都有多(7)个数据条目 在第一点上,我在每个文件上循环并连接了一个空数据帧,但由于熊猫为每个连接创建新对象的方式,这会带来性能问题。我发现最好先创建一个列表来收集所有数据,然后再创建一个数据帧 但这就产生了一个问题,即创建了一个列表列表,而熊猫似乎没有正确处理这个问题 守则: import os import pandas as pd import zipfile import clevercsv as c

这似乎是一个奇怪的问题,但我遇到了一个问题,我想让多个csv文件连接多个测量点,每个测量点都有多(7)个数据条目

在第一点上,我在每个文件上循环并连接了一个空数据帧,但由于熊猫为每个连接创建新对象的方式,这会带来性能问题。我发现最好先创建一个列表来收集所有数据,然后再创建一个数据帧

但这就产生了一个问题,即创建了一个列表列表,而熊猫似乎没有正确处理这个问题

守则:

import os
import pandas as pd
import zipfile
import clevercsv as csv
from pprint import pprint

def try_number(s):
    try:
        if "." in s:
            return float(s)
        return int(s, 10)
    except ValueError:
        return s


def read_umafall(fp):
    header_lines = []
    metadata = {}
    data = []
    for line in fp:
        line = line.strip()
        if line.startswith("%"):
            if ": " in line:
                key, _, value = line[1:].partition(": ")
                metadata[key.strip()] = value
            else:
                header_lines.append(line)
        elif ";" in line:
            data.append([try_number(c) for c in line.split(";")])
        elif line:
            print("???", line)
    return {
        "header_lines": header_lines,
        "metadata": metadata,
        "data": data,
    }

csv_list = []
directory = r"C:\Users\20191678\OneDrive - TU Eindhoven\Engineering Design" 
for filename in os.listdir(directory):
    if '.csv' in filename:
        with open(filename) as fp:
            indiv_csv = read_umafall(fp)
            csv_list.append(indiv_csv["data"])
            
df = pd.DataFrame(csv_list[0], columns = ["Timestamp", "Sample No.", "X-Axis", "Y-Axis", "Z-Axis", "Sensor Type", "Sensor ID"])
df



当我只给熊猫一个文件时,输出是正确的:

但在为实例2提供更多文件时,我得到了以下输出(其中数据帧与列表作为值进行了转换):

如何解决这个问题,为每个文件获取一个具有多索引的数据帧(或实际情况下的实验测试)