問題タブ [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.
python - pandas.multiindexのレベルに条件を適用する方法は?
私のデータは次のようになります(ch
=チャネル、det
=検出器):
実際には、時間列はfloat
12桁程度の有効数字であり、1回の測定のすべての検出器で一定ですが、その値は予測できず、シーケンスでもありません。
作成する必要があるのは、次のようなデータフレームです。
np.mean
つまり、毎回1チャンネルの検出器のすべてのカウントに個別に適用したいと思います。ずんぐりしたループを書くことはできますが、パンダには何かが組み込まれている必要があると思います。私はまだパンダの初心者です。特にMultiIndexには非常に多くの概念があるため、ドキュメントで何を探すべきかわかりません。
タイトルに「条件」が含まれているのは、同じ時間のカウントで、1つのチャネルのすべての検出器の平均が必要であるという事実がスライス条件として表現できるのではないかと思ったからです。
python - パンダの多重指数の利点は?
そのため、サブサンプリング/断面を行うためのMultiIndexがなくてもDataFrame.groupbyを使用できることを学びました。
一方、DataFrameにMultiIndexがある場合でも、DataFrame.groupbyを使用してサブサンプリング/断面を実行する必要があります。
では、印刷時に階層が非常に便利できれいに表示されることを除けば、MultiIndexは何に適しているのでしょうか。
python - 日中時系列のマルチインデックス構築 (10 分価格データ)
日中の価格を 10 分ごとに記録したファイルがあります。[0:41] 1 日に 1 回。各日付は 42 回繰り返されます。以下のマルチインデックスは、繰り返される日付を常に 1 つに「折りたたむ」必要があります。
62,035 行 x 3 列あります
[date, time, price]
。10 分間の料金の差を取得する関数を作成し、差をそれぞれの固有の日付に制限したいと思います。
つまり、09:30 が各日の最初で、16:20 が最後です。16:20 から 09:30 までの価格の差を重複させることはできません。違いは、データフレーム内の一意の日付ごとに、09:40 ~ 09:30 で始まり、16:20 ~ 16:10 で終わる必要があります。
これが私の試みです。どんな提案でも大歓迎です。
次に、次のように呼び出します。
トレースバックで - Assertion Error
.
python-2.7 - pandas:セカンダリインデックスの範囲でMultiIndexDataFrameをスライスします
2番目のインデックスのスライスは、マルチインデックスのパンダシリーズで実行できることが投稿されています。
次に、最初のindex = 1の最初の3行を取得するには、次のように言います。
これは1次元シリーズでは正常に機能しますが、DataFrameでは機能しません。
これにより、最初のインデックスレベルに関係なく、データの「1番目」の列と最初の3行が表示されます。マルチインデックスデータフレームの最初のインデックス=1の最初の3行を取得するにはどうすればよいですか?
python - ネストされた辞書の項目から pandas DataFrame を構築する
次の構造のネストされた辞書「user_dict」があるとします。
- レベル 1: UserId (長整数)
- レベル 2:カテゴリ (文字列)
- レベル 3:さまざまな属性 (floats、int など)
たとえば、この辞書のエントリは次のようになります。
の各アイテムuser_dict
は同じ構造を持ちuser_dict
、属性からシリーズを構築して pandas DataFrame にフィードしたい多数のアイテムを含んでいます。この場合、階層インデックスが役に立ちます。
具体的には、私の質問は、辞書の「レベル 3」の値からシリーズを構築する必要があることを DataFrame コンストラクターが理解できるようにする方法があるかどうかです。
次のようなことを試してみると:
「レベル 1」(UserId の) の項目は列として取得されます。これは、達成したいこととは逆です (UserId をインデックスとして持つ)。
辞書のエントリを反復処理した後にシリーズを構築できることはわかっていますが、より直接的な方法があれば、これは非常に便利です。同様の質問は、ファイルにリストされている json オブジェクトから pandas DataFrame を構築できるかどうかを尋ねるでしょう。
python - 2 つのデータフレームをマージし、マルチインデックスで新しいデータフレームを作成します
私はすべて、
Pandas には 2 つのデータフレームがあります。
あ:
およびb :
次のようなマルチインデックスを使用して、2 つのデータフレームを新しいデータフレームにマージしたいと思います。
new_df :
マルチインデックス ('10m','all') を持つ要素はaで、次の行はbです。
パンダでこれを達成する方法について誰か考えがありますか?
どうもありがとう、
グレッグ
編集:
皆さんこんにちは、
私は前進し、高さを伸ばしました。高さとセクターが低い高さから高い高さ、および低いセクターから高いセクターにソートされていないため、問題が発生しました。
これは私が得るものです:
高さの順序が10、20、40、80、140、200mになるようにマルチインデックスを並べ替えたいと思います。セクター: 'All','[0.0, 90.0[','[90.0, 180.0[','[180.0, 270.0[','[270.0, 360.0]'. このようにインデックスを再作成しようとしましたが、うまくいきません:
これは df 辞書です:
このデータフレームのインデックスを再作成して、インデックス レベルを並べ替えた順序にする方法を知っている人はいますか?
ありがとう
c++ - ベクトルでboost::multi_indexまたはboost::intrusiveのアイテムを割り当てることは可能ですか?
メモリを節約するために、ベクターに boost::multi_index のアイテムを割り当て、ポインター (8 バイト) の代わりにこのベクター内のインデックス (4 バイト) を使用することは可能ですか (boost::multi_index の内部構造を含む)?
python - オブジェクトごとにパンダグループをマルチインデックス付きデータフレームに変換します
次のデータフレームがある場合
名前と目的地でグープできます...
しかし、次のような新しいマルチインデックス付きデータフレームが必要です
Dataframe(grouped)
マルチインデックスのデータフレームを取得するような方法があるはずですが、代わりにPandasError
(「DataFrame コンストラクターが正しく呼び出されていません!」) が表示されます。
これを取得する最も簡単な方法は何ですか? また、 groupby オブジェクトをコンストラクターに渡すオプションがあるかどうか、または単に間違っているかどうかを知っている人はいますか?
ありがとう
python - MultiIndex列を使用してpandasデータフレームにフィールドを追加します
この質問に対する答えは非常に単純に見えるので探しましたが、まだ何も見つかりませんでした。私が何かを逃した場合はお詫び申し上げます。私はパンダバージョン0.10.0を持っており、次の形式のデータを試しています。
ご覧のとおり、私は3D時系列データを表現しようとしています。したがって、時系列インデックスとMultiIndex列があります。私はデータをスライスすることにかなり満足しています。クローズデータの末尾の平均だけが必要な場合は、次のように実行できます。
私ができないことは、avg_closeのような新しいフィールドを作成し、それに割り当てることです。理想的には、次のようなことをしたいと思います。
dftst [:、'avg_close'] = pandas.rolling_mean(dftst.ix [:、:: 2]、5)
MultiIndexのレベルを交換しても、機能させることはできません。
私の列がMultiIndexでない場合は、次のように割り当てることができます。
別のフィールドに基づいてフィールドを追加するには、次のようにします。
Panelオブジェクトを使用してみましたが、これまでのところ、MultiIndex列があるフィールドを追加する簡単な方法は見つかりませんでした。理想的には、他のレベルの列がブロードキャストされます。この質問に答える他の投稿があった場合は、お詫び申し上げます。任意の提案をいただければ幸いです。
python - Pandas でのマルチ インデックス ソート
特定の列の値で並べ替えたい pandas df にマルチインデックス列を持つデータセットがあります。sortindex と sortlevel を使用してみましたが、探している結果を得ることができませんでした。私のデータセットは次のようになります。
グループ 1 の列 C ですべてのデータとインデックスを降順で並べ替えたいので、結果は次のようになります。
私のデータが入っている構造でこの並べ替えを行うことは可能ですか、それとも Group1 をインデックス側にスワップする必要がありますか?