pandas.concat() 関数は、指定された軸に沿って複数のシリーズまたはデータフレームを結合するための強力なツールです。レベル、キー、名前などのオプションの引数を多数提供しており、これらを使用して結果の MultiIndex をカスタマイズできます。
levels 引数は、結果として得られる MultiIndex のレベルを指定するために使用されます。デフォルトでは、Pandas はキー引数からレベルを推測します。ただし、シーケンスのリストをレベル引数に渡すことで、推論されたレベルをオーバーライドできます。
たとえば、次のコードは、2 つのレベルの MultiIndex を使用して、行に沿って 2 つの DataFrame を連結します。
<code class="python">df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]}) df = pd.concat([df1, df2], keys=['df1', 'df2'], levels=['level1', 'level2']) print(df) level1 level2 A B C D 0 df1 1 1 3 5 7 1 df1 2 2 4 6 8</code>
この例では、レベル引数は 2 つのシーケンス ['level1', 'level2'] のリストです。これにより、「level1」と「level2」の 2 つのレベルを持つ MultiIndex が作成されます。 key 引数は、2 つの文字列 ['df1', 'df2'] のリストです。これにより、値「df1」と「df2」がそれぞれ MultiIndex の第 1 レベルと第 2 レベルに割り当てられます。
keys 引数は、結果として得られる MultiIndex のキーを指定するために使用されます。デフォルトでは、Pandas は入力オブジェクトのインデックス ラベルをキーとして使用します。ただし、keys 引数に値のリストを渡すことで、デフォルトのキーをオーバーライドできます。
たとえば、次のコードは、3 つのレベルの MultiIndex を使用して、行に沿って 2 つの DataFrame を連結します。
<code class="python">df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]}) df = pd.concat([df1, df2], keys=[('A', 'B'), ('C', 'D')]) print(df) level1 level2 A B C D 0 A B 1 3 5 7 1 C D 2 4 6 8</code>
この例では、keys 引数は 2 つのタプルのリストです: [('A', 'B'), ('C', 'D')]。これにより、「level1」、「level2」、「level3」の 3 つのレベルを持つ MultiIndex が作成されます。 Keys 引数は、値 'A' と 'B' を MultiIndex の最初のレベルに割り当て、値 'C' と 'D' を MultiIndex の 2 番目のレベルに割り当てます。
names 引数は、結果として得られる MultiIndex のレベルの名前を指定するために使用されます。デフォルトでは、Pandas は入力オブジェクトのインデックス ラベルの名前をレベルの名前として使用します。ただし、文字列のリストを names 引数に渡すことで、デフォルトの名前をオーバーライドできます。
たとえば、次のコードは、2 つのレベルの MultiIndex を使用して、行に沿って 2 つの DataFrame を連結します。
<code class="python">df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]}) df = pd.concat([df1, df2], keys=['df1', 'df2'], names=['level1', 'level2']) print(df) level1 level2 A B C D 0 df1 1 1 3 5 7 1 df1 2 2 4 6 8</code>
この例では、names 引数は 2 つの文字列のリストです: ['level1', 'level2']。これにより、MultiIndex の最初のレベルと 2 番目のレベルに、それぞれ「level1」と「level2」という名前が割り当てられます。
以上がPandas の concat 関数の引数「levels」、「keys」、および「names」はどのように機能して MultiIndex を作成しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。