次のような同様のことを行う関数を作成しました。この関数は、マルチレベル データフレームを想定しています。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
この関数は仕事をしますが、書くのは本当にばかげています。データフレーム スライサー内でリストをアンパックするにはどうすればよいですか?