У меня есть фрейм данных со столбцом, наблюдения которого начинаются с буквы «P» или «N», за которой следует число.
df
Col1 Col2
... "P14"
"N13"
Я хочу изменить значения этих наблюдений внутри Col2.
Если строка начинается с P, измените наблюдение только на число.
Иначе, если строка начинается с N, измените наблюдение на отрицательное число.
Используя цикл for, яудалось сделать это
i = 0
for value in df["Col2"]:
if df[0] == "P":
value = int([pvi[1:3])
...
df["Col2"][i] = value
i += 1
Но мне было интересно, есть ли способ, которым я могу сделать это, используя более панда / Numpy подход. Я дошел до этого:
df["Col2"] = np.select(
[
df["Col2"].str.startswith("P"),
df["Col2"].str.startswith("N"),
],
[
# Stuck here.
???,
???
],
default = "Unknown"
)
Спасибо!