Python对数据类型进行分类

Python对数据类型进行分类,python,numpy,sqlite,Python,Numpy,Sqlite,我计划创建一个“table”类,我可以在我的data analyzis程序中使用它来存储收集到的数据。目标是制作如下所示的简单表格: ID Mean size Stdv Date measured Relative flatness ---------------------------------------------------------------- 1 133.4242 34.43 Oct 20, 2013 32093 2

我计划创建一个“table”类,我可以在我的data analyzis程序中使用它来存储收集到的数据。目标是制作如下所示的简单表格:

ID    Mean size     Stdv     Date measured    Relative flatness
----------------------------------------------------------------
1     133.4242      34.43    Oct 20, 2013    32093
2     239.244       34.43    Oct 21, 2012    3434
我将遵循这篇文章中的sqlite3建议:,但我仍然需要将其保存为csv文件(而不是数据库),并且我希望它在运行时吃掉我的数据:只要有新的度量值可用并且被认为是有趣的,就动态添加列。为此,类需要能够确定抛出的数据的数据类型

Sqlite3具有有限的数据类型:float、int、date和string。Python和numpy一起有许多类型。是否有一个简单的方法可以快速确定变量的数据类型?因此,当输入包含新字段的新数据时,我的table类可以自动添加一列

我不太关心性能,桌子应该相当小

我想这样使用我的类:

dt = Table()
dt.add_record({'ID':5, 'Mean size':39.4334'})
dt.add_record({'ID':5, 'Goodness of fit': 12})
最后一行是新数据。Table类需要确定数据的类型,然后向sqlite3表中添加一列。使所有字符串看起来有点松懈,我仍然希望保持我的高精度浮点正确


另外:如果类似的东西已经存在,我想知道它。

您的问题似乎是:“是否有一个简单的方法可以快速确定变量的数据类型?”。这是一个简单的问题,答案是:
类型(变量)
。 但您提供的上下文需要更仔细的回答

自 但您可能会遇到进一步的问题:如果您不想要求预先固定列类型,则可能需要在收到新记录时更改列类型

例如,对于示例中的
拟合优度
列,首先得到一个int(12)。但第二次可能会得到一个浮点值(例如10.1),这表明这两个值都必须解释为浮点值。如果下次你收到一个字符串,那么所有的字符串都必须是字符串,对吗?但是数字的精确格式也很重要:当你把12和12.0解释为浮点数时,它们是相同的,而当你把它们解释为字符串时,它们就不同了;当您将它们全部转换为字符串时,第一个值可能会变成“12.0”

因此,要么在同一列的连续值类型不匹配时引发异常,要么尝试根据新值转换以前的值;但有时您可能需要重新读取输入

然而,一旦你做出了关于预期行为的决定,这应该不是一个很难实现的问题。
关于你的最后一个问题:我个人不知道这个问题的现有实现。

是的,这就是我最后做的。关于列类型,我假设该类型在第一个数据之后保持不变。
type(variable)
的问题和麻烦在于您有其他非基本类型,例如numpy
type(numpy.array([1,2])[1])
将为您提供
numpy.int32
。还有很多其他可能的结果。这使得映射更加困难:我需要找出所有可能的输入数据类型。