gpt4 book ai didi

python - 通过 Regex 操纵 Pandas 中的值

转载 作者:太空狗 更新时间:2023-10-30 02:17:44 26 4
gpt4 key购买 nike

这实际上是 here 的后续问题.我之前的问题没说清楚,既然已经回答了,我觉得还是发一个新问题比较好。

我有一个如下所示的数据框:

Column1    Column2    Column3    Column4                     Column5
5FQ 1.047 S$55.3 UG44.2 as of 02/Jun/2016 S$8.2 mm
600 (1.047) S$23.3 AG5.6 as of 02/Jun/2016 S$58 mm
KI2 1.695 S$5.35 RR59.5 as of 02/Jun/2016 S$705 mm
88G 0.0025 S$(5.3) NW44.2 as of 02/Jun/2016 S$112 mm
60G 5.63 S$78.4 UG21.2 as of 02/Jun/2016 S$6.21 mm
90F (5.562) S$(88.3) IG46.2 as of 02/Jun/2016 S$8 mm

我正在尝试使用 regex 删除所有单词和字母,只保留数字。但是,如果数字包含在 () 中,我想改为将其设为负数。

期望的输出

Column1    Column2    Column3    Column4       Column5
5 1.047 55.3 44.2 8.2
600 -1.047 23.3 5.6 58
2 1.695 5.35 59.5 705
88 0.0025 -5.3 44.2 112
60 5.63 78.4 21.2 6.21
90 -5.562 -88.3 46.2 8

这可能吗?我试过使用这段代码,但不确定合适的 regex 组合应该是什么。

df.apply(lambda x: x.astype(str).str.extract(r'(\d+\.?\d*)', expand=True).astype(np.float))

最佳答案

r1 = r'\((\d+\.?\d*)\)'
r2 = r'(-?\d+\.?\d*)'
df.stack().str.replace(r1, r'-\1', 1) \
.str.extract(r2, expand=False).unstack()

enter image description here

关于python - 通过 Regex 操纵 Pandas 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39315053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com