Python 是否自动将数据类型分配给数据帧?(蟒蛇-熊猫)

Python 是否自动将数据类型分配给数据帧?(蟒蛇-熊猫),python,pandas,types,Python,Pandas,Types,我得到了一个SQL表,其中所有188列都设置为nvarchar。当通过Pandas将此表引入Python时,所有列的数据类型都成为“对象” 我正在用Python创建一个机器学习模型,为了创建适当的特性,为这些列提供适当的数据类型是有意义的。e、 g.带有数字的列应为INT 我要注意的是,我不能修改SQL表,因此只能用python来修复数据 有没有一种方法可以根据列中的数据自动分配数据类型,而不是一个接一个地为188列分配数据类型?可能有一种更类似python的方法,但是其他语言中的一种常见模式是

我得到了一个SQL表,其中所有188列都设置为nvarchar。当通过Pandas将此表引入Python时,所有列的数据类型都成为“对象”

我正在用Python创建一个机器学习模型,为了创建适当的特性,为这些列提供适当的数据类型是有意义的。e、 g.带有数字的列应为INT

我要注意的是,我不能修改SQL表,因此只能用python来修复数据


有没有一种方法可以根据列中的数据自动分配数据类型,而不是一个接一个地为188列分配数据类型?

可能有一种更类似python的方法,但是其他语言中的一种常见模式是使用
try/catch
测试将值转换为不同类型,直到成功为止。例如,
尝试
将其转换为日期,然后用
传递
捕获相应的异常(通常是
值错误
)。对于转换为int和任何其他数据类型,重复上述步骤

例如,下面的代码将测试
int
float
数据类型:

# Define the values
value = '12.3'
datatype = 'nvarchar'  # Default datatype

# Test for int
try:
    int(value)
    datatype = 'int'
except ValueError:
    pass

# Test for float
try:
    float(value)
    datatype = 'float'
except ValueError:
    pass


# ... And so on with try/except

# Output the datatype
print(datatype)

首先读取列,然后如果它们是数字,就可以使用int()。有些是int,有些是日期,有些是文本标志,我正试图根据每列中不同的数据系统地选择数据类型。如何将此逻辑应用于数据帧?这就是问题所在,您需要半了解数据帧中的数据。如果数据100%未知,则需要遍历每列中的每个值,以确保数据的每一位都符合数据类型。例如,如果第一行的值为“1”,则可以是int,但也可以是碰巧只包含数字的字符串。您需要查看其他值,以确保列中的所有值都是整数。如果您认为只需计算每列的前X值就可以了,那么您可以节省时间,并且只需这样做。