У меня есть фрейм данных с 500k строк следующим образом:
status_code
------------
202
302
403
500
202
.
.
.
------------
Я создал новый столбец как «status_code_grp», а затем проверяю каждую строку, начинается ли она с «2», я назначу « status_code_grp "=" 200 ". Повторите это для grp = "300", "400", "500".
Я написал что-то вроде этого:
df2 = pd.DataFrame(np.random.randint(200,599,size=(500000, 1)), columns=['status_code'])
for eachRow in range(len(df)):
if(df['status_code'][eachRow].startswith['2']):
df['status_code_grp'][eachRow] = "2xx"
elif(df['status_code'][eachRow].startswith['3']):
df['status_code_grp'][eachRow] = "3xx"
elif(df['status_code'][eachRow].startswith['4']):
df['status_code_grp'][eachRow] = "4xx"
elif(df['status_code'][eachRow].startswith['5']):
df['status_code_grp'][eachRow] = "5xx"
Для l oop очень долго время для завершения. Есть ли способ быть более эффективным, чем проверять строку за строкой с кодом выше?