我在一列中有這個值10-X-002,我只想提取X-002到新列中。到目前為止我嘗試過的是:mask = df["eq_id"].str.count('-').gt(0)splitted = df["eq_id"].str.split("-")df.loc[mask, "eg_number"] = splitted[mask].str[-1]但腳本結果只有002在新列中,我應該怎么做才能在新列中獲取X-002值?謝謝。
4 回答

HUWWW
TA貢獻1874條經驗 獲得超12個贊
將第一個 + 和“-”與最后一個元素相加
mask = df["eq_id"].str.count('-').gt(0)
splitted = df["eq_id"].str.split("-")
df.loc[mask, "eg_number"] = splitted[mask].str[1]+'-' +splitted[mask].str[-1]

溫溫醬
TA貢獻1752條經驗 獲得超4個贊
最簡單的事情是只更改代碼中的一行,這完全沒問題。
改變這個splitted = df["eq_id"].str.split("-")
進入這個splitted = df["eq_id"].str.split("-", 1)
這意味著您只需要從'-'
左側開始進行一次分割。
保持其余代碼不變,它應該可以完成工作

阿晨1998
TA貢獻2037條經驗 獲得超6個贊
如果您知道字符串的索引位置,那么您可以這樣做:
mask = df["eq_id"].split('-')[1]+'-'+df["eq_id"].split('-')[-1] df.loc[mask, "eg_number"] = mask
用“-”號將它們拆分并重新組合回來,然后分配回該特定列
添加回答
舉報
0/150
提交
取消