熊猫to_numeric不向下转换整数列

时间:2018-10-26 13:41:09

标签: python-3.x pandas

我有一个带有dtype('int64')列的数据框。列中的值介于0到10之间。数据帧具有770K行和56列不同类型的数据。当我运行下面的代码时,我得到dtype('int64')。我本以为结果至少会降到int32int16的水平。这是一个可复制的示例。

import pandas as pd

df = pd.DataFrame([x for x in range(10)]*77000, columns=['recommendation'])
df.dtypes
df.recommendation.apply(lambda x: pd.to_numeric(x, downcast='integer')).dtypes

1 个答案:

答案 0 :(得分:4)

apply方法逐个单元工作,因此无法确定整个列都可以向下转换。 您需要在整列中调用to_numeric,如Ben在评论中所示:

pd.to_numeric(df.recommendation,downcast='integer')