python - 替换 , 为 . 在熊猫数据框中进行类型转换之前
问题描述
我从 .csv 中获得了一个数据框,其中包含一个带有数值的列,但是它们是使用 a 编写的,而不是 a .. 我试图在转换值之前更改它,但我猜我缺乏 Python 技能让我做出扭曲假设,因为这似乎不起作用。
df['score'] = df['score'].replace(',', '.')
df['score'].astype('float64')
我在这里做错了什么?
解决方案
如https://stackoverflow.com/a/56114791/5666087中所写并在文档中描述pandas.read_csv
,您应该使用
import pandas as pd
pd.read_csv(path_to_csv, decimal=",")
该文件指出
十进制 :
str
, 默认'.'
识别为小数点的字符(例如
','
用于欧洲数据)。
这是一个例子
import io
import pandas as pd
data = """
item,cost
book,"19,99"
coffee,"2,50"
"""
df = pd.read_csv(io.StringIO(data), decimal=",")
df.head()
# item cost
# 0 book 19.99
# 1 coffee 2.50
df.dtypes
# item object
# cost float64
# dtype: object
推荐阅读
- python - UnboundLocalError:分配前引用了局部变量'print'?
- python - 动态过滤掉 sqlalchemy 中的数据
- django - 什么是浅键变换
- r - 在 R 数据框中选择具有两个不同概率的行
- sql - 我应该如何设计一个表格,其中一行可以根据行的类型有不同的列?
- .net-core - 什么是基于微服务的架构中的上游和下游服务?
- image - 上传图片生成特效视频
- ajax - AJAX 默认配置
- javascript - 遍历对象数组的嵌套子对象并使属性等于 false - JavaScript
- android - Android Studio 更改默认底部导航行为