1
パンダのデータフレームに正規化されたランキングを持つ列を追加したいとします。手順は次のとおりです。パンダのデータフレームに正規化されたランキングの列を追加する
最初にpandasパッケージをインポートします。
#import packages
import pandas as pd
パンダのデータフレームを定義します。
# Create dataframe
data = {'name': ['Jason', 'Jason', 'Tina', 'Tina', 'Tina'],
'reports': [4, 24, 31, 2, 3],
'coverage': [25, 94, 57, 62, 70]}
df = pd.DataFrame(data)
データフレームの作成後、データフレームに追加の列を追加します。この列には、各名前のカバレッジ列の値に基づいたランクが別々に含まれています。
df['coverageRank'] = df.groupby('name')['coverage'].rank()
print (df)
coverage name reports coverageRank
0 25 Jason 4 1.0
1 94 Jason 24 2.0
2 57 Tina 31 1.0
3 62 Tina 2 2.0
4 70 Tina 3 3.0
ここで、ランキング列の値を正規化します。
所望の出力が
coverage name reports coverageRank
0 25 Jason 4 0.500000
1 94 Jason 24 1.000000
2 57 Tina 31 0.333333
3 62 Tina 2 0.666667
4 70 Tina 3 1.000000
で誰かがforループの明示的を使用せずにこれを行う方法を知っていますか?