我在excel文件中有这样的列:
Numbers
13.264.999,99
1.028,10
756,4
1.100,1
因此,当我用pd.read_excel
加载它时,一些数字如756,4
被转换为756.4
并成为浮点数,而上面例子中的其他3个数字保持不变,是字符串。
现在我想让列以这种形式(类型float):
Numbers
13264999.99
1028.10
756.4
1100.1
但是,当使用以下代码从excel转换加载的列时:
df["Numbers"]=df["Numbers"].str.replace('.','')
df["Numbers"]=df["Numbers"].str.replace(',','.')
df["Numbers"]=df["Numbers"].astype(float)
我得到:
Numbers
13264999.99
1028.10
nan
1100.1
怎么办?
3条答案
按热度按时间piah890a1#
好吧,我设法解决了这个问题:
所以首先我将每个值转换为字符串,然后将每个逗号替换为点。然后我留下最后一个点,这样数字就可以很容易地转换为浮点数:
jgwigjjp2#
如Anton vBR的注解所示,使用参数
thousands='.'
,您将正确读取数据。axkjgtzd3#
您可以尝试读取默认类型为字符串的excel