Как извлечь строку из ячейки фрейма данных, содержащей как номер, так и строку

#python #dataframe #data-science

Вопрос:

У меня есть такой фрейм данных:

 Mode  Small  medium Large
Car   20USD  40USD  60USD
Bike  10RS   30RS   45RS
 

Нужно, чтобы это было так:

 Mode Currency Small Medium Large
Car  USD     20      40     60
Bike RS      10      30     45
 

Ответ №1:

Ну, есть два способа сделать это:

  • Способ регулярных выражений, который довольно аккуратен и прост (хорошо, что вам не понадобится сам модуль регулярных выражений, так как он включен в серию pandas):
 df['Currency'] = df['Small'].str.extract(r'w ')
df['Small'] = df['Small'].str.extract(r'd ').astype('int')
df['Medium'] = df['Medium'].str.extract(r'd ').astype('int')
df['Large'] = df['Large'].str.extract(r'd ').astype('int')
 

Если все пойдет правильно, это должно сработать.

  • Второй способ, который довольно уродлив, — это использовать петли, и я упоминал, что это уродливо? в любом случае я рекомендую первый способ.