# 各`id`ごとのコスト合計を計算
cost_sum_per_id = df.groupby('id')['cost'].transform('sum')
# 新しい列`rate`に比率を計算して格納
df['rate'] = df['cost'] / cost_sum_per_id * 100
# 結果を表示
print(df)
import pandas as pd
# サンプルデータフレームを作成
data = {
'id': ['s1', 's2', 's2', 's2'],
'item': ['z1', 'z2', 'z3', 'z4'],
'hour': [40, 20, 80, 60],
'cost': [800000, 800000, 800000, 800000]
}
df = pd.DataFrame(data)
# 各`id`ごとのコスト合計を計算
cost_sum_per_id = df.groupby('id')['cost'].transform('sum')
# 新しい列`rate`に比率を計算して格納
df['rate'] = df['cost'] / cost_sum_per_id * 100
# 結果を表示
df