有没有办法强迫熊猫“ to_numeric”总是返回float64?

时间:2020-05-19 15:27:38

标签: python pandas

我正在使用pandas#read_csv将文件中的数据读入数据帧,并使用pandas#to_numeric作为其中一列的converter。我希望本专栏始终阅读为float64。但是,熊猫将返回float64int64

有没有办法让熊猫to_numeric总是返回float64

或者,还有另一种方法可以利用转换器返回float64吗?

pd.read_csv("foo.csv", converters={
    "some_col": pd.to_numeric,
})

1 个答案:

答案 0 :(得分:1)

您可以使用astype()指定dtype:

df = pd.read_csv("foo.csv", converters={
    "some_col": lambda x: pd.to_numeric(x).astype('float64'),
})

在某种程度上等同于:

df = pd.read_csv('foo.csv')
df['some_col'] = pd.to_numeric(df['some_col']).astype('float64')

# or 
# df['some_col'] = df['some_col'].astype('float64')

我建议第二种方法,因为它对我来说更具可读性。但这纯粹是个人原因,converters的存在是有原因的:-)。