我在熊貓中有以下資料框:
d = {'Student Name': ['Omar 17BE004', '17BE005 Hussain', '17BE006 Anwar Syed']}
df_test = pd.DataFrame(data=d)
df_test.head(3)
我正在嘗試創建一個名為 Student_ID 的新列,它將包含 Student Name 列中代表學生 ID 的字串部分,例如第一行中的 17BE004。為此,我使用以下代碼:
df_test['Indices'] =df_test['Student Name'].str.find('1')
start=df_test.Indices
stop=start 7
myList_2=list(range(3))
for x in myList_2:
df_test['Student ID']=df_test['Student Name'].str.slice(start[x], stop[x],1)
但是,我在學生 ID 列中得到的輸出是:Omar 17、17BE005、17BE006
當我只想要學生 ID 17BE004 時,學生 ID 列第一行的結果是 Omar 17。如果所需字串前面有不需要的字串,似乎 str.slice 命令無法從學生姓名中切出正確的學生 ID。就像想要的學生 ID 17BE004 前面的名字 Omar。誰能告訴我如何獲得正確的學生證列?
uj5u.com熱心網友回復:
用于str.extract()此
d = {'Student Name': ['Omar 17BE004', '17BE005 Hussain', '17BE006 Anwar Syed']}
df_test = pd.DataFrame(data=d)
df_test['Student ID'] = df_test['Student Name'].str.extract(r'(\b1\w{6})')
print(df_test)
Student Name Student ID
0 Omar 17BE004 17BE004
1 17BE005 Hussain 17BE005
2 17BE006 Anwar Syed 17BE006
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/534445.html
