【发布时间】:2020-02-11 15:55:52
【问题描述】:
我有一个数据框,一列 Quantity 具有以下值
Col1
20,000
20
-10,000
-50
我想将此列转换为浮点数,因为稍后我将与浮点数进行比较以过滤某些行。但是我得到一些或其他错误:“只能使用带有字符串值的 .str 访问器!”
我想我发现了问题,当它读取值“-50”时,它会将其读取为浮点数,因此没有“str”访问器有效。加载 csv 文件时,该列是对象类型系列
我的代码看起来像
df['Qty'] = np.where(~df['Qty'].str.contains(','),df['Qty'],df['Qty'].str.replace(",",""))
df['Qty'] = df['Qty'].astype(float)
How can I resolve this issue?
【问题讨论】:
-
使用
pd.to_numeric -
如果我执行 to_numeric 会收到错误“ValueError: Unable to parse string "20,000" at position 0"。 @yatu
-
pd.to_numeric(series, errors='coerce') -
你能分享加载 CSV 的代码吗?可以在那里选择 dtype。