2016-12-11 34 views

回答

3

df.dtypes的返回对象类型是pandas.Series。它有一个to_dict方法:

df = pd.DataFrame({'A': [1, 2], 
        'B': [1., 2.], 
        'C': ['a', 'b'], 
        'D': [True, False]}) 

df 
Out: 
    A B C  D 
0 1 1.0 a True 
1 2 2.0 b False 

df.dtypes 
Out: 
A  int64 
B float64 
C  object 
D  bool 
dtype: object 

df.dtypes.to_dict() 
Out: 
{'A': dtype('int64'), 
'B': dtype('float64'), 
'C': dtype('O'), 
'D': dtype('bool')} 

字典中的值来自dtype类。如果你想要的名称为字符串,您可以使用适用于:

df.dtypes.apply(lambda x: x.name).to_dict() 
Out: {'A': 'int64', 'B': 'float64', 'C': 'object', 'D': 'bool'} 
+0

听起来不错,唯一的小项目是to_dict()删除列的顺序(初始--->阿尔法) – Tensor

+1

在Python字典是无序的。你可以使用OrderedDict,但你需要传递一个排序函数。 – ayhan

+0

但是,在dtype = ....中不接受命令。怎么办? – Tensor

相关问题