我想将一些数据带入pandas DataFrame,并为导入时的每一列分配dtypes。 我希望能够对具有许多不同列的较大数据集执行此操作,但是,例如:
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),它将浮点格式应用于两列。
最后,我希望能够将其传递给数据类型列表,就像我将其传递给列名称列表一样。
dtype的参数应该是有效的numpy dtype(并且不支持结构化dtype),因此列表或字典将不起作用。 一种可能的方法是分别为每个列进行分类。 或者首先创建一个结构化的numpy数组,并将其提供给DataFrame。
我知道我可以在循环中分别分配每个对象,但令我惊讶的是dtype =不够灵活,无法容纳列表。 不过感谢您的回答,很高兴得到确认:)
github.com/pydata/pandas/issues/4464目前是一