我有一个名为amount的列,其包含的值如下所示:$3,092.44当我执行dataframe.dtypes()时,它作为对象返回该列,如何将该列转换为int类型?
发布于 2017-06-10 04:24:51
在regex中,\D的意思不是数字..。所以我们可以使用pd.Series.str.replace
dataframe.amount.replace('\D', '', regex=True).astype(int)
0 309244
1 309244
Name: amount, dtype: int64发布于 2017-06-10 04:16:17
可以将Series.replace或Series.str.replace与Series.astype结合使用。
dataframe = pd.DataFrame(data={'amount':['$3,092.44', '$3,092.44']})
print (dataframe)
amount
0 $3,092.44
1 $3,092.44
dataframe['amount'] = dataframe['amount'].replace('[\$\,\.]', '', regex=True).astype(int)
print (dataframe)
amount
0 309244
1 309244dataframe['amount'] = dataframe['amount'].astype(int)
print (dataframe)
amount
0 309244
1 309244发布于 2020-01-23 09:55:42
这就是你如何做到这一点,同时也丢弃了美分:
car_sales["Price"] = car_sales["Price"].str.replace('[\$\,]|\.\d*', '').astype(int)https://stackoverflow.com/questions/44469313
复制相似问题