1

次のような同様のことを行う関数を作成しました。この関数は、マルチレベル データフレームを想定しています。column_name引数は ['Deal Name','Deal Expense'] にすることができます。マルチレベルのデータフレームをフィルター処理するには、データフレーム フィルター内で column_name リストを展開する必要があります。

私は何かdf[*column_name].loc[row_name] がうまくいくことを望んでいましたが、うまくいきませんでした。

詳細: マルチレベル データ フレームにアクセスしようとしています。column_name[0] はレベル 0 に必要な列の名前、column_name[1] はレベル 1 に必要な列の名前、などです。

def search_table(row_name, column_name):
    if header == 1:
        output = df.at[row_name, column_name]
    elif header == 2:
        output = df[column_name[0], column_name[1]].loc[row_name]
    elif header == 3:
        output = df[column_name[0], column_name[1], column_name[2]].loc[row_name]
    elif header == 4:
        output = df[column_name[0], column_name[1], column_name[2], column_name[3]].loc[row_name]
    return output

この関数は仕事をしますが、書くのは本当にばかげています。データフレーム スライサー内でリストをアンパックするにはどうすればよいですか?

4

1 に答える 1