保存后数据帧类型丢失



我有数据帧 我更改为类别类型。 但是保存并加载后,类型返回到 float64

data = pd.DataFrame(barray, columns=['line 1', 'line 2', 'line 3', 'line 4', 'piece to move', 'place to occupy'])
data['possibility of win'] = y
for col in ['line 1', 'line 2', 'line 3', 'line 4', 'piece to move', 'place to occupy']:
data[col] = data[col].astype('category')
data['line 1'].dtype

输出: 分类Dtype(categories=['2000', '2001', '2002', '2010', '2011', '2012', '2020', '2021', '2100', '2101', '2102', '2110', '2112', '2120', '2121', '2200', '2201', '2202', '2210', '2211', '2212', '2220', '2221'], 有序=假(

data.to_csv('data.csv')
data = pd.read_csv("data.csv")
data['line 1'].dtype

输出: dtype('int64'(

这是意料之中的,因为在csv中,所有数据都像文本一样保存。

解决方案是在read_csv中添加参数dtype

#all columns set to categoricals
data = pd.read_csv("data.csv", dtype='category')

如果要只指定一些列,请使用字典:

cols = ['line 1', 'line 2', 'line 3', 'line 4']
d = dict.fromkeys(cols, 'category')
data = pd.read_csv("data.csv", dtype=d)

相关内容

最新更新