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
Lepaskan: 2024-10-29 10:34:02
asal
197 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Keluaran kedua-dua penyelesaian ialah:

{0: [1], 1: [2, 3, 5], 2: [1, 2], 3: [4, 5], 4: [1], 5: [1, 2, 3]}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan