pandas.concat可以处理非float64 dtypes吗?

时间:2014-11-03 20:54:05

标签: python pandas

我有一个非常大的数据集,因此我通过将dtypes转换为最小可能类型并在某些列上使用Series.to_sparse来实现压缩数据(实现约80%压缩)。但是,当我尝试连接其中两个数据集(两者都具有相同的压缩和dtypes)时,我失去了这种压缩。即:

dfmerged = pd.concat((df1, df2), 0)

dfmerged.dtypes现在全部是float64。我尝试了以下操作:

for c in df1.columns:
  if dfmerged[c].dtype != df1[c].dtype: 
      dfmerged[c] = dfmerged[c].astype(df1[c].dtype)

然而,这给了我一个错误:'现在只能支持浮点数据'。

原始列可以是uint8uint16等。所以我猜不支持float64.astype(uint8)

我能做到这一点的最佳方式是什么?我是否需要通过创建具有正确类型信息的单个Series来从头开始创建DataFrame?

熊猫版本:0.15.0-6-g403f38d

Python:2.7

0 个答案:

没有答案