Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk mengumpulkan DataFrame mengikut Lajur dan Menukarkannya kepada Kamus Senarai dalam Python?

Bagaimana untuk mengumpulkan DataFrame mengikut Lajur dan Menukarkannya kepada Kamus Senarai dalam Python?

Barbara Streisand
Barbara Streisandasal
2024-10-29 10:34:02198semak imbas

How to Group a DataFrame by a Column and Convert It to a Dictionary of Lists in Python?

GroupBy dan Tukar DataFrame kepada Kamus Senarai

Memandangkan fail Excel yang mengandungi data berstruktur, matlamatnya adalah untuk mengekstrak data, mengumpulkannya oleh lajur tertentu, dan simpannya dalam kamus Python dengan senarai sebagai nilai. Format data dalam helaian Excel ialah:

Column1 Column2 Column3
0 23 1
1 5 2
1 2 3
1 19 5
2 56 1
2 22 2
3 2 4
3 14 5
4 59 1
5 44 1
5 1 2
5 87 3

Penyelesaian 1: groupby.apply().to_dict()

Untuk menukar data ke dalam kamus yang diingini format, ikut langkah berikut:

  1. Baca fail Excel ke dalam DataFrame menggunakan pandas.read_excel().
  2. Kumpulkan DataFrame mengikut Column1 menggunakan groupby().
  3. Ekstrak nilai daripada Lajur3 dan gunakan senarai pada setiap kumpulan untuk menukarnya kepada senarai.
  4. Tukar hasil terkumpul kepada kamus menggunakan to_dict().
<code class="python">import pandas as pd

excel = pd.read_excel(r"e:\test_data.xlsx", sheetname='mySheet', parse_cols='A,C')
result = excel.groupby('Column1')['Column3'].apply(list).to_dict()

print(result)</code>

Penyelesaian 2: Pemahaman Kamus

Sebagai alternatif, anda boleh menggunakan pemahaman kamus untuk mencapai hasil yang sama:

<code class="python">result = {k: list(v) for k, v in excel.groupby('Column1')['Column3']}

print(result)</code>

Keluaran kedua-dua penyelesaian ialah:

{0: [1], 1: [2, 3, 5], 2: [1, 2], 3: [4, 5], 4: [1], 5: [1, 2, 3]}

Atas ialah kandungan terperinci Bagaimana untuk mengumpulkan DataFrame mengikut Lajur dan Menukarkannya kepada Kamus Senarai dalam Python?. 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