我的 DataFrame 中的值如下所示:
id val
big_val_167 80
renv_100 100
color_100 200
color_60/write_10 200
我想在 _numeric 之后洗掉 id 列的值中的所有內容。所以想要的結果必須是這樣的:
id val
big_val 80
renv 100
color 200
color 200
怎么做?我知道str.replace()可以使用,但我不明白如何在其中撰寫正則運算式部分。
uj5u.com熱心網友回復:
您可以使用 regex( re.search) 找到 _ 數字的第一次出現,然后您就可以解決問題了。
代碼:
import re
import pandas as pd
def fix_id(id):
# Find the first occurence of: _ digits in the id:
digit_search = re.search(r"_\d", id)
return id[:digit_search.start()]
# Your df
df = pd.DataFrame({"id": ["big_val_167", "renv_100", "color_100", "color_60/write_10"],
"val": [80, 100, 200, 200]})
df["id"] = df["id"].apply(fix_id)
print(df)
輸出:
id val
0 big_val 80
1 renv 100
2 color 200
3 color 200
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/343411.html
上一篇:從具有相似前綴的列中劃分元素
下一篇:從分類變數創建新列
