データフレームの転置方法


Pandasのデータフレームで、軸を指定して転置する方法がありましたらご教示いただけませんでしょうか？

具体的には、下記データフレーム（「ID」「year」別に「金額」「個数」を集計したもの）を、

[code]

    df = pd.DataFrame({'id': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                       'year': ['2018', '2019', '2020', '2018', '2019', '2020', '2018', '2019', '2020'],
                       '金額': [3000, 4500, 2000, 1500, 4000, 2500, 1000, 5000, 3500],
                       '個数': [2, 3, 1, 1, 2, 2, 1, 5, 3]})
    
[/code]

下記のように、「id」ごとに 1行のデータフレームに転置したいです。  
（「id」ごとに、「year」を軸に、「金額」「個数」を転置するイメージ）

[code]

    df2 = pd.DataFrame({'id': ['A', 'B', 'C'],
                        '2018_金額': [3000, 1500, 1000],
                        '2019_金額': [4500, 4000, 5000],
                        '2020_金額': [2000, 2500, 3500],
                        '2018_個数': [2, 1, 1],
                        '2019_個数': [3, 2, 5],
                        '2020_個数': [1, 2, 3]})
    
[/code]




こちらのページ等を参考に、以下のようにしてみました。  
[pandas.DataFrame.pivot](https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.DataFrame.pivot.html)  
[Reshaping and pivot
tables](https://pandas.pydata.org/docs/user_guide/reshaping.html)  
[MultiIndex / advanced indexing](https://pandas.pydata.org/pandas-
docs/stable/user_guide/advanced.html)  
[pandas.DataFrame.reset_index](https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.DataFrame.reset_index.html)

[code]

    df2 = df.pivot(index='id', columns='year', values=['金額','個数'])
    
    newcolumns = []
    for i in range(len(df2.columns)):
        newcolumns.append(df2.columns[i][1] + '_' + df2.columns[i][0])
    
    df2.columns = newcolumns
    df2.reset_index(inplace=True)
    
[/code]




こちらのページ等を参考に、以下のようにしてみました。  
[pandas.DataFrame.pivot](https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.DataFrame.pivot.html)  
[Reshaping and pivot
tables](https://pandas.pydata.org/docs/user_guide/reshaping.html)  
[MultiIndex / advanced indexing](https://pandas.pydata.org/pandas-
docs/stable/user_guide/advanced.html)  
[pandas.DataFrame.reset_index](https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.DataFrame.reset_index.html)

[code]

    df2 = df.pivot(index='id', columns='year', values=['金額','個数'])
    
    newcolumns = []
    for i in range(len(df2.columns)):
        newcolumns.append(df2.columns[i][1] + '_' + df2.columns[i][0])
    
    df2.columns = newcolumns
    df2.reset_index(inplace=True)
    
[/code]

