亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過引用字符串位置檢查數據框列中的子字符串

通過引用字符串位置檢查數據框列中的子字符串

慕田峪9158850 2023-03-16 09:34:11
我有一個數據框,其中包含一個名為“id”的列,其中每個 id 的長度為 9 個字符,我正在嘗試添加一個列“Rating”,我根據第 6 行將每一行評為 A、AA 或 AAA,第 7 個和第 8 個字符是“A00”、“AA0”或“000”。到目前為止,我有以下代碼:id = df['id']conditions = [(id.str.get(5) == 'A00'), (id.str.get(5) == 'AA0'), (id.str.get(5) == '000')]values = ['A', 'AA', 'AAA']df['Rating'] = np.select(conditions, values)df['Rating'] = df['Rating'].astype('category')但我知道條件行是錯誤的,因為 column.str.get(n) 只檢查字符串的第 (n-1) 個字符,我需要長度為 3 的子字符串,而不僅僅是一個字符。有誰知道我可以使用哪個命令?提前致謝!
查看完整描述

2 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

replace()與值映射一起使用:

df.id.str[-4:-1].replace({'A00': 'A', 'AA0': 'AA', '000': 'AAA'})



查看完整回答
反對 回復 2023-03-16
?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

只需使用正則表達式提取它。


df.id.str.extract(r'.{5}([A]+)').fillna('AAA') 

例子


df = pd.DataFrame({'id': ['12345A003', '12345AA03', '123450003']}) 

df.id.str.extract(r'.{5}([A]+)').fillna('AAA')  

輸出


     0

0    A

1   AA

2  AAA


查看完整回答
反對 回復 2023-03-16
  • 2 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號