我想在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
有更好的方法吗?
df = pd.DataFrame([['a', '1'], ['b', '2']], dtype='int', columns=['x', 'y'])
是可行的,但是存在问题。 - Andy Hayden