我想将一些数据导入到 pandas DataFrame 中,并在导入时为每个列分配数据类型。 我希望能够对具有许多不同列的较大数据集执行此操作,但作为示例:
myarray = np.random.randint(0,5,size=(2,2))
mydf = pd.DataFrame(myarray,columns=['a','b'], dtype=[float,int])
mydf.dtypes
结果为:
类型错误:数据类型无法识别
我尝试了一些其他方法,例如:
mydf = pd.DataFrame(myarray,columns=['a','b'], dtype={'a': int})
类型错误:'type'对象没有len()
如果我使用dtype=(float,int)
,它会将浮点格式应用于两个列。
最终我希望能够像传递列名列表那样传递数据类型列表。
dtype
的参数应该是一个有效的 numpy dtype(不支持结构化 dtype),因此列表或字典将无法使用。一种可能的方法是分别对每列进行 astype。或者先创建一个结构化的 numpy 数组,然后将其提供给 DataFrame。 - jorisread_csv
绕过了这个问题:https://dev59.com/klkT5IYBdhLWcg3wfvin#38524255 :D - krassowski