为pandas数据帧的列分配数据类型。
- 论坛
- 为pandas数据帧的列分配数据类型。
16 浏览
为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
有更好的方法吗?