我正在使用pandas#read_csv
将文件中的数据读入数据帧,并使用pandas#to_numeric
作为其中一列的converter。我希望本专栏始终阅读为float64
。但是,熊猫将返回float64
或int64
。
有没有办法让熊猫to_numeric
总是返回float64
?
或者,还有另一种方法可以利用转换器返回float64
吗?
pd.read_csv("foo.csv", converters={
"some_col": pd.to_numeric,
})
答案 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
的存在是有原因的:-)。