問題タブ [multi-index]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
819 参照

c++ - 要素を削除してboost::multi_index_containerに再挿入せずに要素を移動するにはどうすればよいですか?

boost :: multi_index_containerを使用して、要素のコレクションへのランダムアクセスとハッシュベースのアクセスを提供しています。ハッシュベースのインデックスを変更せずに、要素のランダムアクセスインデックスを変更したかったのです。

これがコードの一部です:

multi_index_containerこの例でランダムアクセスイテレータのみを使用して要素を操作したとしても、オブジェクトのコピーに加えて、ハッシュは舞台裏で少なくとも2回発生することを知っています。これは、コストがかかる可能性があります。

boost::multi_indexコピーを保持しながらの高価な削除と挿入の醜さを必要とせずに、内部の要素のランダムアクセスインデックスを変更する方法はありますか?

multi_index_containerドキュメントを検索しましたが、何かが足りなかった可能性があります。アドバイスありがとうございます!

注:英語の間違いの可能性について申し訳ありません:)

0 投票する
1 に答える
360 参照

boost - 共有メモリ内の `boost::multi_index_container` ?

共有メモリ内のマルチ インデックス コンテナのようなものに興味があります。

boost::multi_index_container異なる実行可能ファイルがそのデータを読み書きできるように、たとえば共有メモリに割り当てることは可能ですか? どのように?

ありがとう。

0 投票する
1 に答える
1889 参照

python - Pandas MultiIndex でラベルが 1 つだけの値のリストでインデックスを作成する方法

パンダのマルチインデックスを使用して、最上位のインデックス (日付) で部分的なスライスを選択し、リストを第 2 レベルのインデックス (株式記号) に適用しようとしています。つまり、以下の範囲で AAPL と MSFT のデータが必要ですd1:d2

部分的なスライスは正常に機能しますが、途中で GOOG を回避しながら、2 番目のインデックスから AAPL と MSFT の両方を選択する方法が明確ではありません。

レベルを交換すると、単一のシンボルで機能しますが、リストでは機能しません。

長いタプルリストを作成することを避けたい:

ixに渡されたときに機能します。以下は私の希望する出力です。

ありがとう、ジョン

0 投票する
10 に答える
855120 参照

python - PandasGroupBy出力をSeriesからDataFrameに変換する

私はこのような入力データから始めています

印刷すると次のように表示されます。

グループ化は非常に簡単です。

印刷するとGroupByオブジェクトが生成されます。

しかし、最終的に必要なのは、GroupByオブジェクトのすべての行を含む別のDataFrameオブジェクトです。言い換えれば、私は次の結果を得たいと思います:

パンダのドキュメントでは、これを実現する方法がよくわかりません。ヒントは大歓迎です。

0 投票する
1 に答える
1372 参照

c++ - ブースト multi_index イテレータの開始と終了を返す方法

クラスで定義された multi_index イテレータがあります。特定のインデックスに基づいてコンテナを反復処理する権限をユーザーに与える必要があります。私はそれを行う方法がわかりません。私を手伝ってくれますか:

エラーは次のとおりです。

あなたの親切な助けを大切にします。

ありがとうございます

0 投票する
1 に答える
1904 参照

c++ - C++ Boost Multi Index、Modify には Functor が必要、コンパイルに失敗

Boost::Multi_Index の使用をテストするために、Windows C++ Visual Studio プロジェクト (VS9) をセットアップしました。コンテナーは、カスタム オブジェクト FC::ClientOrder への共有ポインターを格納するように設定されています。テスト用に、オブジェクトは非常に単純で、文字列と char 変数のみを格納します。ブースト バージョンは 1_46_0 です

メンバー関数を使用してアクセスし、ID として共有ポインターにインデックスを付け、2 つのメンバー変数にもインデックスを付けるように Multi_Index コンテナーを構成しました。それは問題ないようで、うまく機能します。

ただし、modify() メソッドに問題があります。インデックスの一部であるメンバー変数を更新する場合は、modify() を使用する必要があることに気付きました。また、最初に find() を使用してコンテナー内の FC::ClientOrder オブジェクトを見つけ、次に iterator を modify() に渡して変更を行う必要があることにも気付きました。

ID を介して FC::ClientOrder 共有ポインターを見つけた場合、共有ポインター自体はすべて正常に機能し、modify() は満足しています。

メンバー関数 clOrdID() を介して FC::ClientOrder 共有ポインターを見つけた場合 (基本的に ID で注文を検索する、非常に一般的な使用法)、構文が同一であっても、modify() 関数は失敗します。型の問題を示しているように見えるコンパイラ エラーが表示されますが、何が問題なのか理解するのが難しいと感じています。

modify() は ID インデックスに基づくイテレータでのみ機能しますか? その場合、clOrdID を介して注文を編集するには、2 つのルックアップを実行する必要があります。これは、clOrdID() 値を介して注文を取得できるという目的を無効にしているようです。

modify() 関数が必要とするものを誤解していると思います。今のところ、二重ルックアップを使用してこれを回避できますが、誰かが解決策を持っている場合は、大いに感謝します. 私は Functors にかなり慣れていないので、modify() の必要性を誤解している可能性があります。

よろしくお願いいたします。サンプル コードのチャンクが続きます...

// SOLUTION (stefaanv提供)

m_micOrders のメンバー関数として、modify() を使用していました。updateOrder() 関数を次のように修正する必要があるように、イテレータが適用されるインデックス オブジェクトのメンバー関数として modify() を使用する必要がありました...

0 投票する
1 に答える
1548 参照

python - マルチインデックス データフレームで Pandas マルチインデックスを折りたたむか、OLS 回帰を実行する

ピボットを使用してデータを再形成し、列を作成しましたmultiindex。結果の列を単純な OLS 回帰の X 変数にしたいと考えています。Y は、同じ行インデックスを持つ別のシリーズです。

走ってみると

私は得る

私は2つの解決策を想像できますが、どちらかを理解することはできません:

  1. マルチインデックスを折りたたみます。('before', 'var1') および ('after', 'var1') の形式の列を使用するのではなく、'beforevar1'、'aftervar1' などの列を作成します。次に、ols を使用してきれいで十分に読みやすいテーブルを作成します。

  2. マルチインデックスで回帰を実行する方法はありますか? この種のこと、特にパネルの回帰のために設計されたようですが、関連する例やドキュメントは見つかりませんでした。

#1 に対する洗練されていない解決策を見つけました。新しいデータフレームを作成し、両方の列インデックスをループして、同じ名前で新しいデータフレームに新しい列を挿入できますが、名前はタプルではなく文字列です。もっと洗練された単一のコマンドがあるはずですよね?

0 投票する
3 に答える
3003 参照

pandas - MultiIndexを使用してパンダパネルからデータを選択する

DataFrameたとえば、MultiIndex があります。

次に、各行 (インデックス レベル 0) と各列の要素 2 と 3 (インデックス レベル 1) の平均を計算します。だから私は次のようなDataFrameが必要です

元のデータ フレームの行 (インデックス レベル 0) のループを使用せずにそれを行うにはどうすればよいですか? パネルに対して同じことをしたい場合はどうすればよいですか? groupby を使用した簡単な解決策があるはずですが、まだ学習中であり、答えが思いつきません。

0 投票する
3 に答える
31115 参照

python - 複合 (階層) インデックスを使用して Pandas データフレームから行を選択する

これは些細なことだと思いますが、階層キーの値に基づいて Pandas データフレームから行を選択できる呪文をまだ発見していません。たとえば、次のデータフレームがあるとします。

df は期待どおりに見えます。

ここに画像の説明を入力

df が group1 でインデックス付けされていない場合、次のことができます。

しかし、インデックスを持つこのデータフレームでは失敗します。したがって、これは、階層インデックスを持つ Pandas シリーズのように考える必要があります。

いいえ。それも失敗します。

では、次のすべての行を選択するにはどうすればよいですか。

  1. group1 == 'a'
  2. グループ 1 == 'a' & グループ 2 == 'c'
  3. group2 == 'c'
  4. ['a','b','c'] の group1
0 投票する
1 に答える
1304 参照

python - マルチインデックスにブロードキャストする方法

groupby 操作の結果として得られる 2 つの pandas 配列 A と B があります。A には、変位値と日付の両方で構成される 2 レベルのマルチインデックスがあります。B には日付のインデックスがあります。

それらの 2 つの間で、日付インデックスが一致します (A の各分位インデックス内)。

Aの最初のマルチインデックスレベルと一致するマルチインデックスに追加のレベルを持つように、Bを「ブロードキャスト」する標準のパンダ関数またはイディオムはありますか?