Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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 使用Pandas读取精确的表定义_Python_Pandas - Fatal编程技术网

Python 使用Pandas读取精确的表定义

Python 使用Pandas读取精确的表定义,python,pandas,Python,Pandas,正在尝试使用Pandas导入用于数据分析的数据库表。我有一个包含多个列的源表,如下所示: ID float NOT NULL, Name varchar(36) NOT NULL, Address varchar(100) 当我将其拉入数据帧并运行以下操作时: df.info() 我得到: ID float64 Name object Address object 有没有办法让它读取准确的数据定义?i、 e.“varchar(36)”而不是“object” 这是从Teradata表中读取

正在尝试使用Pandas导入用于数据分析的数据库表。我有一个包含多个列的源表,如下所示:

ID float NOT NULL, 
Name varchar(36) NOT NULL,
Address varchar(100)
当我将其拉入数据帧并运行以下操作时:

df.info()
我得到:

ID float64
Name object
Address object
有没有办法让它读取准确的数据定义?i、 e.“varchar(36)”而不是“object”

这是从Teradata表中读取数据,如果这有区别的话


谢谢

据我所知,这是不可能的。
varchar
数据类型仅存在于Teradata数据库系统中,一旦您将其拉入数据帧,它就会被转换为一种数据类型(
str
unicode


pandas、numpy和python中的数据类型概述:

据我所知,这是不可能的。
varchar
数据类型仅存在于Teradata数据库系统中,一旦您将其拉入数据帧,它就会被转换为一种数据类型(
str
unicode


pandas、numpy和python中的数据类型概述:

pandas依赖于numpy数据类型的定义

访问包含更多信息的,但我将从中复制所有类型:

[numpy.generic,
 [[numpy.number,
   [[numpy.integer,
     [[numpy.signedinteger,
       [numpy.int8,
        numpy.int16,
        numpy.int32,
        numpy.int64,
        numpy.int64,
        numpy.timedelta64]],
      [numpy.unsignedinteger,
       [numpy.uint8,
        numpy.uint16,
        numpy.uint32,
        numpy.uint64,
        numpy.uint64]]]],
    [numpy.inexact,
     [[numpy.floating,
       [numpy.float16, numpy.float32, numpy.float64, numpy.float128]],
      [numpy.complexfloating,
       [numpy.complex64, numpy.complex128, numpy.complex256]]]]]],
  [numpy.flexible,
   [[numpy.character, [numpy.bytes_, numpy.str_]],
    [numpy.void, [numpy.record]]]],
  numpy.bool_,
  numpy.datetime64,
  numpy.object_]]
底线是,我看不到任何支持显示类似于varchar(#)的数据类型。处理字符串的默认方法是在框架中为它们分配数据类型“object”


就我所知,在Python中,通常没有固定大小或半固定大小的字符串(不过可以进行固定大小的打印格式)。

访问包含更多信息的,但我将从中复制所有类型:

[numpy.generic,
 [[numpy.number,
   [[numpy.integer,
     [[numpy.signedinteger,
       [numpy.int8,
        numpy.int16,
        numpy.int32,
        numpy.int64,
        numpy.int64,
        numpy.timedelta64]],
      [numpy.unsignedinteger,
       [numpy.uint8,
        numpy.uint16,
        numpy.uint32,
        numpy.uint64,
        numpy.uint64]]]],
    [numpy.inexact,
     [[numpy.floating,
       [numpy.float16, numpy.float32, numpy.float64, numpy.float128]],
      [numpy.complexfloating,
       [numpy.complex64, numpy.complex128, numpy.complex256]]]]]],
  [numpy.flexible,
   [[numpy.character, [numpy.bytes_, numpy.str_]],
    [numpy.void, [numpy.record]]]],
  numpy.bool_,
  numpy.datetime64,
  numpy.object_]]
底线是,我看不到任何支持显示类似于varchar(#)的数据类型。处理字符串的默认方法是在框架中为它们分配数据类型“object”


就我所知,在Python中通常没有固定大小或半固定大小的字符串(不过,您可以为打印设置固定大小的格式)。

谢谢,这个链接很有帮助。我想我在这项特殊的任务上可能运气不好,除非除了熊猫之外还有别的东西可以用?我已将你发送的链接添加到书签中,很好,谢谢,该链接很有帮助。我想我在这项特殊的任务上可能运气不好,除非除了熊猫之外还有别的东西可以用?我已经将你发送的链接添加到书签,很好的信息