我想設置dtype
的多重列在pd.Dataframe
(我有我不得不手動解析成列表的列表中的文件,因爲文件是不適合用於pd.read_csv
)分配大熊貓據幀列dtypes
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
有沒有更好的方法?
這可能是一個很好的[bug /功能請求](https://github.com/pydata/pandas/issues/new),目前我不確定dtype arg在做什麼(你可以 –
FYI:'df = pd.DataFrame([['a','1'],['b','2']],dtype ='int' ,列= ['x','y'])'「起作用」......但:s –
是的,「起作用」的確如此;不可預知的... – hatmatrix