は、データフレームdf
df = pd.DataFrame([
['Fire', 'Poison', 300, 30, 10],
['Poison', 'Grass', 250, 20, 15]
], columns=['Type1', 'Type2', 'HP', 'Attack', 'Defense'])
Type1 Type2 HP Attack Defense
0 Fire Poison 300 30 10
1 Poison Grass 250 20 15
使用pd.melt
stat_cols = ['HP', 'Attack', 'Defense']
type_cols = ['Type1', 'Type2']
melted = pd.melt(df, stat_cols, type_cols, value_name='Type')
melted.groupby('Type')[stat_cols].mean()
HP Attack Defense
Type
Fire 300.0 30.0 10.0
Grass 250.0 20.0 15.0
Poison 275.0 25.0 12.5
余分なクレジット
を考えてみましょう 使用describe
stat_cols = ['HP', 'Attack', 'Defense']
type_cols = ['Type1', 'Type2']
melted = pd.melt(df, stat_cols, type_cols, value_name='Type')
melted.groupby('Type')[stat_cols].describe()
HP Attack Defense
Type
Fire count 1.000000 1.000000 1.000000
mean 300.000000 30.000000 10.000000
std NaN NaN NaN
min 300.000000 30.000000 10.000000
25% 300.000000 30.000000 10.000000
50% 300.000000 30.000000 10.000000
75% 300.000000 30.000000 10.000000
max 300.000000 30.000000 10.000000
Grass count 1.000000 1.000000 1.000000
mean 250.000000 20.000000 15.000000
std NaN NaN NaN
min 250.000000 20.000000 15.000000
25% 250.000000 20.000000 15.000000
50% 250.000000 20.000000 15.000000
75% 250.000000 20.000000 15.000000
max 250.000000 20.000000 15.000000
Poison count 2.000000 2.000000 2.000000
mean 275.000000 25.000000 12.500000
std 35.355339 7.071068 3.535534
min 250.000000 20.000000 10.000000
25% 262.500000 22.500000 11.250000
50% 275.000000 25.000000 12.500000
75% 287.500000 27.500000 13.750000
max 300.000000 30.000000 15.000000
多くの方法、あまりにも多くの方法があります!最終的な出力がどのように表示されるかの例が提供されれば、より良い結果が得られます。 – piRSquared
質問を編集しましたが、それは今意味がありますか? –