PythonPandas的价值观替换

7xzttuei  于 2022-11-27  发布在  Python
关注(0)|答案(1)|浏览(112)

我需要将每个包含数值的单元格(如number 1(number 2))替换为number 2(括号内的值)。例如:56(3)-〉3,33(5)-〉5
这些值可以出现在不同的列中。
问题是Pandas的功能

df.replace(to_replace=..., value=...)

我不能使用value,它依赖于匹配的字符串。
我试着这样说:

df.replace(to_replace='[0-9]+([0-9]+)', value=lambda x: int(x.split("(")[1].strip(")")), regex=True)

但是lambda函数不起作用。

r8uurelv

r8uurelv1#

你试过df.apply吗?
需要注意的是,在dataFrame上使用apply会将整行作为输入发送到lambda函数,因此您必须执行类似以下的操作:

for col in df.columns:
    df[col] = df[col].apply(<insert lambda function here>)

相关问题