給出汽車串列及其最高速度、MPG 和汽車成本。我想給他們排名。Speed 的“重量”為 50%,MPG 的“重??量”為 30%,汽車成本為 20%。
汽車越快越好.. MPG 越高越好.. 成本越低越好..
根據此標準,我可以使用什么公式對汽車進行排序?
所以給出了這個串列。我怎樣才能對它們進行排名?
CAR SPEED MPG COST
A 135 20 50,000
B 150 15 60,000
C 170 18 80,000
D 120 30 40,000
我可以使用什么軟體庫來做到這一點?Python?麻木?
謝謝
uj5u.com熱心網友回復:
您可以使用簡單的算術對不同的行進行評分。由于COST成反比,我們將1/COST改為考慮。如果COST可以為零,您也可以減去它而不是使用倒數。
import pandas as pd
df = pd.DataFrame({'CAR': ['A', 'B', 'C', 'D'],
'SPEED': [135, 150, 170, 120],
'MPG': [20, 15, 18, 30],
'COST': [50.0, 60.0, 80.0, 40.0]})
score = 0.5*df["SPEED"] 0.3*df["MPG"] 0.2/df["COST"]
df.loc[score.sort_values(ascending=False).index]
CAR SPEED MPG COST
2 C 170 18 80.0
1 B 150 15 60.0
0 A 135 20 50.0
3 D 120 30 40.0
uj5u.com熱心網友回復:
您應該使用名為“pandas”的 Python 庫,您可以在其中操作資料,嘗試如下操作:
import pandas as pd
df = pd.read_csv("your_csv_file.csv")
df['SCORE'] = (df['MPG'] / df['MPG'].max() * 50) (df['SPEED'] / df['SPEED'].max() * 30) (df['COST'].max() / df['COST'] * 20)
df = df.sort_values(by=['SCORE'], ascending=False)
它創建一個帶有相關分數的新列:
CAR SPEED MPG COST SCORE
3 D 120 30 40.0 111.176471
0 A 135 20 50.0 89.156863
2 C 170 18 80.0 80.000000
1 B 150 15 60.0 78.137255
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/343368.html
上一篇:重新映射-1到1之間的值向量
