我正在尝试从数据框中获取列数据类型
这是示例代码:
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']
但是如何获取标签列的数据类型?非常感谢您的宝贵时间。
致谢
答案 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