【发布时间】:2022-12-16 23:22:04
【问题描述】:
我有一个数据框,我实际上需要对 A 列中指示的千伏进行比较 (>= 110) 或 (<110)。 然后如果 kv >= 110,将 C 列的值更改为 Transmission。 如果 kc < 110,将 C 列的值更改为 Distribution。 如果没有数字,则默认值为 Distribution。 但前提是 B 列是“sampletext” 我准确地说,比较只能在 kV 上进行,字符串中可以有其他数字,但它们并不重要。
这是数据框的样子(中间还有其他列,所以我需要按名称引用该列)。
| A | B | C |
|---|---|---|
| lorem ipsum 400kv | sampletext | distribution |
| lorem 400 kV ipsum | sampletext | distribution |
| lorem 32 ipsum 109KV loremipsum | sampletext | distribution |
| lorem ipsum | sampletext | generation |
这是数据的样子
| A | B | C |
|---|---|---|
| lorem ipsum 400kv | sampletext | transmission |
| lorem 400 kV ipsum | sampletext | transmission |
| lorem 32 ipsum 109KV loremipsum | sampletext | distribution |
| lorem ipsum | sampletext | generation |
我试着举一些例子来说明 kv 并不总是以相同的方式和相同的位置编写。 如果我没记错的话,找到千电压的正则表达式就是这个:
(\d+)(\s|.)((?i:kv))
我尝试使用条件、.extract、.contains 甚至 np.select,但我就是找不到如何让它工作。
非常感谢 !
【问题讨论】: