我有以下问题,我有两个单独的python脚本。 第一个将CSV文件转换为新格式(删除某些列并删除美元符号)
单独的脚本会读取所有已转换的CSV文件,并从中创建单个大型脚本,按特定键对数据进行分组。
所有这些都运行得很好,除了我一直遇到以下问题。
两个文件 Money Out 中的一列有时包含以' - '开头的值(-235.93)。我想从文件中删除此符号。
我在两个脚本中都放了以下代码,但我无法删除该符号。 数据有时是数字,有时是字符串。我认为将它统一为字符串并使用'替换'方法可以解决问题,但它没有。我也用pandas方法构建,但无济于事。
df['Money Out'] = df['Money Out'].astype(str)
df['Money Out'] = df['Money Out'].replace('-', '')
df['Money Out'].replace('-', '', inplace=True)
有没有人知道我可能做错了什么?
答案 0 :(得分:1)
尝试这样做
df['Money Out'] = df.apply(lambda r: ("%s"%(r['Money Out'] or "0.0")).replace("-",""), axis=1)
答案 1 :(得分:1)
您的代码:
df['Money Out'].replace('-', '', inplace=True)
正在使用Series.replace
这是一个与Series.str.replace
函数不同的东西(替换列的完全匹配或具有值的正则表达式)(更传统的替换a substring出现在另一个地方),你可以使用:
df['Money Out'] = df['Money Out'].str.replace('-', '')
删除文字中的任何连字符。