当前位置: 首页 > 面试题库 >

在熊猫数据框中搜索和替换点和逗号

高宇定
2023-03-14
问题内容

这是我的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=',')

如果不可能,那么replace应该有所帮助:

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


 类似资料:
  • 问题内容: 给定以下数组,我想用点替换逗号: 我一直在尝试不同的方式,但是我不知道该怎么做。另外,我已将其作为DataFrame导入,但无法应用该函数: 有什么建议如何解决这个问题? 问题答案: 您需要分配的结果,你的工作早在操作不就地,除了可以使用或并用矢量化要做到这一点更快: 这里的关键是分配结果:

  • 我有一个空单元格的数据框,并希望用NaN替换这些空单元格。之前在这个论坛上提出的解决方案有效,但前提是单元格包含一个空间: 当单元格为空时,此代码不起作用。有人建议用熊猫代码来代替空细胞吗?

  • 按下 / 键,编辑器底部会出现 / 符号,接着输入字符串,便可以进行搜索 / 向下搜索 ? 向上搜索 n 搜索下一个 N 搜索上一个 :s/源字符串/目标字符串 将源字符串替换为目标字符串 :s/源字符串/目标字符串/g 替换当前行中所有符合条件的字符串 :行号1,行号2s/源字符串/目标字符串/g 在指定行中进行替换 :%s/源字符串/目标字符串/g 全文替换

  • 我想更改我的熊猫数据框架中的一个值,我想我误解了索引的工作方式。 我得到输出 我想将df中的值0.665873更改为1。我试过了 但我得到了错误 我试图用示例数据帧复制该问题,但无济于事。 我认为问题在于,当我使用实际数据时,我得到了一系列的输出,但当我使用实践数据时,得到了一个浮点。为什么我得到的是这个系列而不是浮点0.665873?

  • 问题内容: 诚然,对于SQL命令,我是一个菜鸟。黑客在我的一个WordPress网站上的每个帖子和页面的末尾插入了一个脚本标签,我试图在“ wp_posts”表中进行查找和替换,但是当我运行“模拟查询。这是我所拥有的: 无论我在第一组“查找”引号中添加了什么内容,即使是像“ hcifx”一样简单的东西,而不是所显示的整个脚本标签,我都会收到错误消息。有什么想法我要去哪里吗? 问题答案: 原来,该错

  • Sublime Text 提供两种主要搜索方式: 单文件搜索 多文件搜索 两种方式都支持正则表达式。 单文件搜索 搜索 键盘快捷键与搜索面板对应关系: 打开搜索面板 Ctrl + F 正则表达式 Alt + R 大小写匹配 Alt + C 精确匹配 Alt + W 下一个 Enter 上一个 Shift + Enter 所有 Alt + Enter 增量搜索 键盘快捷键与增量搜索面板对应关系: 打