pandas.concat() 函數是一個強大的工具,用於沿指定軸組合多個 Series 或 DataFrame。它提供了許多可選參數,包括等級、鍵和名稱,可用於自訂生成的 MultiIndex。
levels 參數用於指定產生的 MultiIndex 的等級。預設情況下,Pandas 將從keys 參數推斷等級。但是,您可以透過將序列清單傳遞給levels參數來覆寫推斷的層級。
例如,以下程式碼使用具有兩個層級的MultiIndex沿行連接兩個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>
在此範例中,levels 參數是兩個序列的清單:['level1 ', 'level2']。這將建立一個具有兩個等級的 MultiIndex:「level1」和「level2」。鍵參數是兩個字串的列表:['df1', 'df2']。這會將值「df1」和「df2」分別指派給 MultiIndex 的第一級和第二級。
keys 參數用於指定產生的 MultiIndex 的鍵。預設情況下,Pandas 將使用輸入物件的索引標籤作為鍵。但是,您可以透過將值清單傳遞給keys參數來覆寫預設鍵。
例如,以下程式碼使用具有三個層級的MultiIndex沿行連接兩個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 參數是兩個元組的清單:[( 'A', 'B'), ('C', 'D')]。這將建立一個具有三個等級的 MultiIndex:「level1」、「level2」和「level3」。鍵參數將值「A」和「B」指派給 MultiIndex 的第一級,將值「C」和「D」指派給 MultiIndex 的第二級。
names 參數用於指定產生的 MultiIndex 的等級名稱。預設情況下,Pandas 將使用輸入物件的索引標籤的名稱作為層級的名稱。但是,您可以透過將字串清單傳遞給名稱參數來覆寫預設名稱。
例如,以下程式碼使用具有兩個層級的MultiIndex 沿著行連接兩個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 參數是兩個字串的清單:[' level1', 'level2']。這會將名稱「level1」和「level2」分別指派給 MultiIndex 的第一層和第二層。
以上是Pandas concat 函數中的「levels」、「keys」和「names」參數如何建立 MultiIndex?的詳細內容。更多資訊請關注PHP中文網其他相關文章!