python-从数据框中获取列dataType

时间:2018-07-02 04:55:09

标签: python python-3.x pyspark pyspark-sql

我正在尝试从数据框中获取列数据类型

这是示例代码:

    print training_data.schema
    print 'fields'
    print training_data.schema.fields
    print 'names'
    print training_data.schema.names

上面的代码打印如下: StructType(List(StructField(id,LongType,true),StructField(text,StringType,true),StructField(label,DoubleType,true))) 领域 [StructField(id,LongType,true),StructField(text,StringType,true),StructField(label,DoubleType,true)] 名字 ['id','text','label']

但是如何获取标签列的数据类型?非常感谢您的宝贵时间。

致谢

3 个答案:

答案 0 :(得分:0)

df['col label'].dtype

是一个选择。

编辑

name_dtype = df['col label'].dtype.name

答案 1 :(得分:0)

感谢所有答复。 我找到了以下解决方案,希望它对寻求答案的人有所帮助:

       for f, v in zip(df.schema.fields, df.schema.names):
          if v == colname:
            datatype = f.dataType

答案 2 :(得分:0)

这是如何获取熊猫数据框的列名和列类型的复制粘贴示例:

import pandas as pd

list = [['Tom',34, 45.5], ['Jack',23, 60.5]]
df = pd.DataFrame(list, columns=["Name","Age","Pay"])

for column in df.columns:
    print("Column ", column, "is dtype:", df[column].dtype.name)

结果:

Column  Name is dtype: object
Column  Age is dtype: int64
Column  Pay is dtype: float64