Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 导入后组织数据的好方法是什么_Python_Database_Pandas_Dataframe_Data Structures - Fatal编程技术网

Python 导入后组织数据的好方法是什么

Python 导入后组织数据的好方法是什么,python,database,pandas,dataframe,data-structures,Python,Database,Pandas,Dataframe,Data Structures,我有不同材料的实验测量数据,我想用python导入这些数据,以便以后进行分析。我得到的原始数据有一个文件夹,每个材料都有一个文件夹。在每个文件夹中,可能有不同形式的材料的子文件夹,最后一级是文件夹,其名称包含实验的两个不同方面的值,可以是不同的。最后,这些文件夹包含同一实验多次运行的原始数据文件,我知道如何将这些文件导入熊猫数据帧 这些原始数据文件中包含的数据本质上是一个表,其中包含实验运行期间不同时间点的测量值。可以找到一个示例原始文件,并且我已经包含了一个示例文件夹结构(txt文件仅允许我创

我有不同材料的实验测量数据,我想用python导入这些数据,以便以后进行分析。我得到的原始数据有一个文件夹,每个材料都有一个文件夹。在每个文件夹中,可能有不同形式的材料的子文件夹,最后一级是文件夹,其名称包含实验的两个不同方面的值,可以是不同的。最后,这些文件夹包含同一实验多次运行的原始数据文件,我知道如何将这些文件导入熊猫数据帧

这些原始数据文件中包含的数据本质上是一个表,其中包含实验运行期间不同时间点的测量值。可以找到一个示例原始文件,并且我已经包含了一个示例文件夹结构(txt文件仅允许我创建文件夹)。我打算对这些数据集中的每一个进行某种曲线拟合,我知道这不是我共享的实际数据,我对上下文也不是很挑剔,但我希望这对于组织这种结构的更一般问题来说不是太重要

我正在寻找一种方法来遍历此结构,并以合理的结构化方式导入数据,以支持进一步的分析。我在想,我可以使用嵌套字典,对材料使用字典,然后对每个实验条件使用进一步的子字典,但是字典对于数据切片来说不是很好。理想情况下,我希望能够调用所有运行的数据,例如,磨机速度为5个单位


我是python数据分析的初学者,因此我可以想象需要澄清,我将尝试及时更新。

如果没有关于数据的更多信息,很难说没有,但您可能有一个自定义类用于此类,甚至可以有一个自定义类,例如一个用于材料,一个用于实验。如果你提供一个样本结构,我可以修改答案,包括一些样本代码

编辑:这将为您提供一个基本结构:

class MaterialCollection:
    def __init__(self,name,mats):
        self.name = name
        self.materials = materials #an array of Materials

    def __getitem__(self,i): #allows you to do MaterialsCollection['Iron']
        for mat in self.materials:
            if mat.name == i:
                return mat

class Material:
    def __init__(self, name,children):
        self.name = name
        self.submaterials = children #an array of submaterials


class SubMaterial:
    def __init__(self,name,parentMaterial,experiments ):
        self.name = name
        self.parentMaterial= parentMaterial
        self.experiments = experiments #an array of experiments



class Experiment:
    def __init__(self,filename,idi,submaterial):
        self.filename = filename
        self.idi = idi
        self.submaterial= submaterial
        self.material = self.submaterial.parentMaterial


    def parseData(self):
        f = open(filename,'rb').read()
        #do something with your data ex:
        self.speed = f[0]
支持进一步分析的合理结构化方法

一种合理的结构化数据存储方式是在数据库中

如果您刚刚习惯Python,我不想增加您的精神负担,但这是关系数据库的理想用例。就我个人而言,我会使用SQLite和sqlite3 Python包

在SQL中,创建一个如下所示的表:

创建实验结果表(
材料名称文本,
刻面_1_名称文本,
刻面_2_名称文本,
运行日期的日期,
v1真实,
v2真实,
...           
);

然后按照查询数据。

在前面我问过的问题中,提供一个可视化的示例/数据提取会很有帮助,您可以看到数据是什么样子的,本质上它只是一个表格,包含实验运行期间不同时间点的测量值。如果你想澄清原始数据是如何组织到文件夹中的,请告诉我。你是想要答案的人,你很难指望我们通过你的老问题找到关于这一问题的信息。您的问题应该是自包含的。这是一个很好的观点,我将对其进行编辑以包含信息。在我链接到单个原始数据文件组成示例的问题的注释中,我将尝试复制文件夹结构并将其上载到github。请告诉我上述内容是否有意义,基本上,您将阅读MaterialsCollection中的所有文件夹(作为材质),然后对每个文件夹解析子材质etcHi,感谢您提供的代码。我以前没有上过课,所以我可能需要一些时间才能理解你的建议。我会仔细阅读这些,然后再给你回复,但从我目前所读到的来看,这似乎是一个很有希望的解决方案。此外,我还更新了原始帖子,添加了指向示例文件夹结构和示例原始文件的链接,如果有帮助的话。是的,鉴于您的文件夹结构,这应该可以工作,如果需要,您可以重新标记我,我可以给您更多关于如何将数据正确读入结构的提示:)谢谢您的建议,根据关于它的一般知识,我确实怀疑它最终可能归结为SQL。我可能也会尝试这种方法,但我觉得,与上面的解决方案相比,需要更长的时间才能适应这些类。