我想在pandas数据框中引入一些数据,并且在导入时为每一列分配数据类型。我希望能够对具有许多不同列的较大数据集执行此操作,但作为示例:
myarray = np.random.randint(0,5,size=(2,2))
mydf = pd.DataFrame(myarray,columns=['a','b'], dtype=[float,int])
mydf.dtypes
结果:
TypeError: data type not understood
我尝试了其他一些方法,例如:
mydf = pd.DataFrame(myarray,columns=['a','b'], dtype={'a': int})
TypeError: object of type 'type' has no len()
如果我放置dtype=(float,int)
,它将对两列应用浮点格式。
最后,我希望能够像传递列名列表一样传递一个数据类型列表。
我刚刚碰到这个问题,熊猫的问题还没有解决,所以我正在发布我的解决方案。假设
df
是我的数据帧,dtype
是将列名映射到类型的dict:(注意:在python 2中使用
dtype.iteritems()
)供参考:
dtypes
):https://docs.scipy.org/doc/numpy-1.12.0/reference/arrays.dtypes.htmlcategory
:http://pandas.pydata.org/pandas-docs/stable/categorical.html您可能希望尝试将对象的字典传递给
Series
构造函数-它将为您提供对创建的更具体的控制,并希望更清楚地了解发生了什么。模板版本(data1
可以是数组等):以数据为例:
从pandas版本0.24.2(当前稳定版本)开始,无法将数据类型的显式列表作为docs状态传递给DataFrame构造函数:
但是,dataframe类确实有一个静态方法,允许您将numpy结构数组转换为dataframe,这样您就可以:
相关问题 更多 >
编程相关推荐