擅长:python、mysql、java
<p>具有矢量化操作的“泛ASIC”解决方案:</p>
<pre><code>import pandas as pd
from io import StringIO
data = StringIO("""Col1,Col2
G1,element.1:410022-411732(+):element_element
G1,element.2:678-10098(-):element_element
G1,element.4:6868-9899(-):element_element
G1,element.1:789-1222(+):element_element
G2,element.2:890-1220(-):element_element
G3,element.1:12-678(+):element_element
G3,element.1:1298-3000(-):element_element
G4,element.8:23222-98889(+):element_element
G5,element.1:1233-7789(-):element_element
G5,element.9:23333-23390(+):element_element
""")
df = pd.read_csv(data, sep=',')
extracted = df["Col2"].str.extract(r"([^:]*:)(?P<num>\d+)([^(]*\()(?P<flag>[+-])(\).*)")
extracted["num"] = pd.to_numeric(extracted["num"])
extracted.loc[extracted["flag"] == "-", "num"] -= 1
extracted["num"] = extracted["num"].astype(str)
df["Col2"] = extracted[0].str.cat(extracted.iloc[:, 1:])
</code></pre>