标签: python pandas
简单问题:我有一个从csv文件导入的数据集,其中包含一个带有数值的字符串列。逗号后面是小数位。
我想转换为float。基本上就是这样:
x = ['27,10083'] df = pd.DataFrame(x) df.astype(float)
为什么这不起作用以及如何解决这个简单问题?
提前致谢。
答案 0 :(得分:5)
使用replace分配输出:
replace
df = df.replace(',','.', regex=True).astype(float)
如果要指定要转换的列:
cols = ['col1','col2'] df[cols] = df[cols].replace(',','.', regex=True).astype(float)
另一个解决方案是在read_csv中使用参数decimal=',',然后将列正确解析为浮点数:
read_csv
decimal=','
df = pd.read_csv(file, decimal=',')