python - 更改类型(pandas dataframe)时如何处理 'invalid literal for int() with base 10'?

标签 python pandas types

我在 Pandas DataFrame 中有这样的列:

data = pd.DataFrame({"consume":["11", "14", "11,5", "12,6"]})

我想更改这个系列的类型。目前,它的类型为 object,但我需要它是 float64int64。如何更改列的类型?我应该在 int64float64 上更改它吗?

当我尝试这样做时:

data['consume'] = data['consume'].astype('int64')

我收到错误:ValueError:以 10 为基数的 int() 的文字无效:'4,2'

最佳答案

所以很明显你不能转换为整数,因为你的字符串中有一个逗号。 (顺便说一句,你真的需要 int64 吗?那太大了) 我想 float 就可以了,所以你可以使用这一行来做到这一点,实际上用点替换逗号,然后将其转换为 float64 (float32 可以更好)

data['consume'] = data['consume'].str.replace(',','.').astype('float64')

关于python - 更改类型(pandas dataframe)时如何处理 'invalid literal for int() with base 10'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59481879/

相关文章:

Python字典复制方法

python - 每当超过某个 cumsum 阈值时如何对 pandas 行进行分组(为每个新组重新启动 cumsum)

python - 为什么我的 Python 散点图不起作用?

python - 处理 numpy.cov 中缺失观察结果的简洁方法?

python - 选择 Pandas 中某个值周围的行

types - 从 Redis 服务器获取列表元素,从 []interface{} 到 []string

ruby-on-rails - rails 3 : What is the correct Rails way of doing custom types?

python - 加载视频数据集(Keras)

pandas - 如何将字符串值拆分/扩展为多个 pandas DataFrame 行?

c++ - 将 vector<char> buf(256) 转换为 LPCSTR?