我在決定應該為要創建的資料框中的新列采用哪個值時遇到問題。以下是要求:
- 該值的長度應為 17
- 該值應包含“MP”,格式為 XXMPXXXXXXXXXXXX
這是資料:
| 序列號 新 | 序列號 關鍵字 | 序列號舊 |
|---|---|---|
| 12MP3221156732243 | 12MP3221156732243 餐廳 | 12MP3221156732243 |
| 0 | 零售 12MP3251453730827 | 3251453730827 |
| 0 | K312MP3251773832657 | 3251773832657 |
| 11MP3221156732243 | 11MP3221156732243 | MP3221156732243 |
| 11MP3251156732267 | 0 | MP3251156732267 |
這是預期的輸出:
| 序列號 新 | 序列號 關鍵字 | 序列號舊 | 序列號最終 |
|---|---|---|---|
| 12MP3221156732243 | 12MP3221156732243 餐廳 | 12MP3221156732243 | 12MP3221156732243 |
| 0 | 零售 12MP3251453730827 | 3251453730827 | 12MP3251453730827 |
| 0 | K312MP3251773832657 | 3251773832657 | 12MP3251773832657 |
| 11MP3221156732243 | 11MP3221156732243 | MP3221156732243 | 11MP3221156732243 |
| 11MP3251156732267 | 0 | MP3251156732267 | 11MP3251156732267 |
有誰知道如何獲得“序列號最終”值?
uj5u.com熱心網友回復:
您可以為此使用正則運算式(..MP.{13})(2 個字符,MP,13 個字符):
df['Serial Number Final'] = df['Serial Number Keyword'].str.extract(r'(..MP.{13})')
或者,如果x只能是數字\d\dMP\d{13}(2 位、MP、13 位):
df['Serial Number Final'] = df['Serial Number Keyword'].str.extract(r'(\d\dMP\d{13})')
輸出:
Serial Number New Serial Number Keyword Serial Number Old Serial Number Final
0 12MP3221156732243 12MP3221156732243 Restaurant 12MP3221156732243 12MP3221156732243
1 0 Retail 12MP3251453730827 3251453730827 12MP3251453730827
2 0 K312MP3251773832657 3251773832657 12MP3251773832657
3 11MP3221156732243 11MP3221156732243 MP3221156732243 11MP3221156732243
使用幾列(選擇第一個匹配項):
cols = ['Serial Number New', 'Serial Number Keyword']
df['Serial Number Final'] = (df[cols]
.apply(lambda s: s.str.extract(r'(\d\dMP\d{13})', expand=False))
.bfill().iloc[:, 0]
)
輸出:
Serial Number New Serial Number Keyword Serial Number Old Serial Number Final
0 12MP3221156732243 12MP3221156732243 Restaurant 12MP3221156732243 12MP3221156732243
1 0 Retail 12MP3251453730827 3251453730827 11MP3221156732243
2 0 K312MP3251773832657 3251773832657 11MP3221156732243
3 11MP3221156732243 11MP3221156732243 MP3221156732243 11MP3221156732243
4 11MP3251156732267 0 MP3251156732267 11MP3251156732267
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/497822.html
上一篇:在numpy陣列中外推NaN值
