Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah argumen \'levels\', \'keys\' dan \'name\' dalam Pandas\' berfungsi untuk mencipta MultiIndex?

Bagaimanakah argumen \'levels\', \'keys\' dan \'name\' dalam Pandas\' berfungsi untuk mencipta MultiIndex?

DDD
DDDasal
2024-10-31 20:28:29498semak imbas

How do the 'levels', 'keys', and 'names' arguments in Pandas' concat function work to create a MultiIndex?

Apakah hujah 'tahap', 'kunci' dan nama dalam fungsi concat Pandas?

1. Pengenalan

Fungsi pandas.concat() ialah alat yang berkuasa untuk menggabungkan berbilang Siri atau DataFrames di sepanjang paksi tertentu. Ia menawarkan beberapa hujah pilihan, termasuk tahap, kunci dan nama, yang boleh digunakan untuk menyesuaikan MultiIndex yang terhasil.

2. Tahap

Argumen tahap digunakan untuk menentukan tahap MultiIndex yang terhasil. Secara lalai, Pandas akan membuat kesimpulan tahap daripada hujah kunci. Walau bagaimanapun, anda boleh mengatasi tahap yang disimpulkan dengan menghantar senarai jujukan kepada hujah tahap.

Sebagai contoh, kod berikut menggabungkan dua DataFrames di sepanjang baris, menggunakan MultiIndex dengan dua tahap:

<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>

Dalam contoh ini, hujah peringkat ialah senarai dua jujukan: ['level1', 'level2']. Ini mencipta MultiIndex dengan dua tahap: 'level1' dan 'level2'. Argumen kunci ialah senarai dua rentetan: ['df1', 'df2']. Ini memberikan nilai 'df1' dan 'df2' kepada tahap pertama dan kedua MultiIndex, masing-masing.

3. Kekunci

Argumen kunci digunakan untuk menentukan kunci untuk MultiIndex yang terhasil. Secara lalai, Pandas akan menggunakan label indeks objek input sebagai kunci. Walau bagaimanapun, anda boleh mengatasi kekunci lalai dengan menghantar senarai nilai kepada argumen kunci.

Sebagai contoh, kod berikut menggabungkan dua DataFrames di sepanjang baris, menggunakan MultiIndex dengan tiga peringkat:

<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>

Dalam contoh ini, hujah kunci ialah senarai dua tupel: [('A', 'B'), ('C', 'D')]. Ini mencipta MultiIndex dengan tiga tahap: 'level1', 'level2' dan 'level3'. Argumen kekunci memperuntukkan nilai 'A' dan 'B' kepada tahap pertama MultiIndex, dan nilai 'C' dan 'D' kepada tahap kedua MultiIndex.

4. Nama

Argumen nama digunakan untuk menentukan nama peringkat MultiIndex yang terhasil. Secara lalai, Pandas akan menggunakan nama label indeks objek input sebagai nama peringkat. Walau bagaimanapun, anda boleh mengatasi nama lalai dengan menghantar senarai rentetan kepada argumen nama.

Sebagai contoh, kod berikut menggabungkan dua DataFrames di sepanjang baris, menggunakan MultiIndex dengan dua peringkat:

<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>

Dalam contoh ini, argumen nama ialah senarai dua rentetan: ['level1', 'level2']. Ini memberikan nama 'level1' dan 'level2' kepada tahap pertama dan kedua MultiIndex, masing-masing.

Atas ialah kandungan terperinci Bagaimanakah argumen \'levels\', \'keys\' dan \'name\' dalam Pandas\' berfungsi untuk mencipta MultiIndex?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn