将excel文件中的逗号转换为点

2024-04-25 21:57:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我在excel文件中有这样的列:

Numbers
   13.264.999,99
  1.028,10
756,4
  1.100,1

因此,当我用pd.read_excel加载它时,一些像756,4这样的数字会被转换成756.4并成为float,而上面示例中的其他3个保持不变,是字符串。你知道吗

现在我想让列的形式如下(int类型):

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

怎么办?你知道吗


Tags: 文件字符串示例类型dfread数字float
3条回答

如Anton vBR的注释所示,使用参数thousands='.',您将正确读取数据。你知道吗

您可以尝试读取默认类型为字符串的excel

df=pd.read_excel('file.xlsx',dtype=str)

好吧,所以我设法解决了这个问题:

因此,首先我将每个值转换为字符串,然后将每个逗号替换为点。 然后我留下最后一个点,这样数字就可以很容易地转换成浮点数:

df["Numbers"]=df["Numbers"].astype(str).str.replace(",", ".")
df["Numbers"]=df["Numbers"].str.replace(r'\.(?=.*?\.)', '')  
df["Numbers"]=df["Numbers"].astype(float)

相关问题 更多 >