为pandas数据帧的列分配数据类型。

16 浏览
0 Comments

为pandas数据帧的列分配数据类型。

我想要在pd.Dataframe中设置多列的dtype(因为文件无法使用pd.read_csv直接读取,所以我不得不手动将其解析成一个列表的列表)。

import pandas as pd
print pd.DataFrame([['a','1'],['b','2']],
                   dtype={'x':'object','y':'int'},
                   columns=['x','y'])

我得到了错误信息:

ValueError: entry not a 2- or 3- tuple

唯一的方法就是通过循环遍历每个列变量,并使用astype重新转换它们。

dtypes = {'x':'object','y':'int'}
mydata = pd.DataFrame([['a','1'],['b','2']],
                      columns=['x','y'])
for c in mydata.columns:
    mydata[c] = mydata[c].astype(dtypes[c])
print mydata['y'].dtype   #=> int64

有更好的方法吗?

0