Это пример данных, с которыми я работаю:
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))
Вы можете использовать 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
Но вы должны преобразовать столбец в числовой, чтобы иметь возможность делать числовые операции над вашим фреймворком данных.
Здесь можно сделать все в одной цепочке:
(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