pandasで値がTrueの時に、対応する列ラベルを取り出したい。短時間で実行するにはどうしたらよいか。する質問をすることでしか得られない、回答やアドバイスがある。3.xpandasJavaScriptを有効にしてくださいpandasで値がTrueの時に、対応する列ラベルを取り出したい。短時間で実行するにはどうしたらよいか。6前提・実現したいこと以下のようなブーリアン型の表があるときに、Trueの値がある列のラベルを取り出してまとめたいです。key1,key3発生している問題・エラーメッセージ以下のようなfor文を使ったコードで目的にあったリストを作ることができたのですが、大きなデータフレーム(400列、15万行)に適用すると実行に数時間かかってしまいます。keys.append(key)keysattachmentクリップ1気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。件sort評価が高い順sort新着順sort古い順link+2pandasで書くならこんな感じですかね。key1,key3無理にlambdaを使わなくても普通の関数でもOKです。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。23:10ご教示ありがとうございます。おかげさまで実際のデータでも短時間で実行することができました。lambda関数は今まで避けてきたのですが、きちんと勉強しようと思います。ご教示ありがとうございます。おかげさまで実際のデータでも短時間で実行することができました。lambda関数は今まで避けてきたのですが、きちんと勉強しようと思います。キャンセル完了するlinkcheckベストアンサー+1以下が時間消費の主因になっていると考えます。forループを二重に回しているところ。ループの最奥でappendを一々実行しているところ。これを解消するため以下の点に留意してスクリプト後半を書きかえてみました。ループの外に出せる処理は全て外に出す。Trueである列の列番号を行毎に拾う処理をリスト内包表記で記述して、forループを一つ消す。拾った列番号は別リスト(df1)に格納。それ以外の処理はループ内では一切行わない。第2行目の結果をそれっぽく出力してみる。1280秒掛かった処理が、上記改変版では7秒で終わりました。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。05:45ご教示ありがとうございました!私の環境でも数時間かかっていた処理が数十秒で実行できました。考え方も教えていただきありがとうございます。データ量が多くなるとコードの書き方ひとつで処理能力が大きく変わることを実感できました。私の環境でも数時間かかっていた処理が数十秒で実行できました。考え方も教えていただきありがとうございます。データ量が多くなるとコードの書き方ひとつで処理能力が大きく変わることを実感できました。3.xに関する質問pandasで値がTrueの時に、対応する列ラベルを取り出したい。短時間で実行するにはどうしたらよいか。頂いたご意見への回答は行っておりません。