как удалить спецсимволы в панде

1

Это пример данных, с которыми я работаю:

Reviews  Size     Installs  Type     Price      Content Rating  
0     159   19M      10,000+  paid     $9.99       Everyone   
1     967   14M     500,000+  paid     $0.99       Everyone   
2   87510  8.7M   5,000,000+  paid     $1.9        Everyone   
3  215644   25M  50,000,000+  paid     $7.50       Teen   
4     967  2.8M     100,000+  Free     0            Everyone 

Я хочу сортировать dataframe по цене, но поскольку типы данных значений в столбце "Цена" являются строковыми, я не могу сортировать фреймворк данных и не могу отличать значения либо из-за символа "$". Есть ли способ сделать это, удалив его или отсортировав DataFrame успешно, не удалив "$"?

Я попробовал следующее, чтобы посмотреть, могу ли я сортировать целевой столбец:

 df = pd.read_csv('googleplaystore.csv')
 category = df['Price'].tolist()
 c = list(set(category))
 print (sorted(c))
Теги:
pandas

2 ответа

2
Лучший ответ

Вы можете использовать str.replace

df['Price'] = df.Price.str.replace('$','')
df.sort_values('Price')

Если вы не хотите удалить char $ вы можете использовать

df = df.iloc[df.Price.str.replace('$','').astype(float).sort_values().index,:]
df.reset_index(drop=True) # To reset index

Но вы должны преобразовать столбец в числовой, чтобы иметь возможность делать числовые операции над вашим фреймворком данных.

0

Здесь можно сделать все в одной цепочке:

(df.assign(content = df.Content.str.replace("$", ""))
   .sort_values("content", ascending=False)
   .drop("content", 1)
)
   Reviews    Size Installs         Type Price Content    Rating
0        0     159      19M      10,000+  paid   $9.99  Everyone
3        3  215644      25M  50,000,000+  paid   $7.50      Teen
2        2   87510     8.7M   5,000,000+  paid    $1.9  Everyone
1        1     967      14M     500,000+  paid   $0.99  Everyone
4        4     967     2.8M     100,000+  Free       0  Everyone

Ещё вопросы

Сообщество Overcoder
Наверх
Меню