加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在pandas数据帧中搜索并替换点和逗号

发布时间:2020-12-20 12:13:57 所属栏目:Python 来源:网络整理
导读:这是我的DataFrame: d = {'col1': ['sku 1.1','sku 1.2','sku 1.3'],'col2': ['9.876.543,21',654,'321,01']}df = pd.DataFrame(data=d)df col1 col20 sku 1.1 9.876.543,211 sku 1.2 6542 sku 1.3 321,01 col2中的数据是本地格式的数字,我想将其转换为: c
这是我的DataFrame:

d = {'col1': ['sku 1.1','sku 1.2','sku 1.3'],'col2': ['9.876.543,21',654,'321,01']}
df = pd.DataFrame(data=d)
df

       col1           col2
0   sku 1.1   9.876.543,21
1   sku 1.2            654
2   sku 1.3         321,01

col2中的数据是本地格式的数字,我想将其转换为:

col2
9876543.21
       654
    321.01

我尝试了df [‘col2’] = pd.to_numeric(df [‘col2′],downcast =’float’),它返回一个ValueError ::无法解析位置0的字符串“9.876.543,21”.

我也尝试了df = df.apply(lambda x:x.str.replace(‘,’,’.’)),它返回ValueError:无法将字符串转换为float:’5.023.654.??46′

谢谢你的帮助!

解决方法

如果可能的参数在 read_csv中使用最好:

df = pd.read_csv(file,thousands='.',decimal=',')

如果不可能,那么替换应该有帮助:

df['col2'] = (df['col2'].replace('.','',regex=True)
                        .replace(',','.',regex=True)
                        .astype(float))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读