Heim >Backend-Entwicklung >Python-Tutorial >Wie gruppiere ich einen DataFrame nach einer Spalte und konvertiere ihn in ein Wörterbuch mit Listen in Python?

Wie gruppiere ich einen DataFrame nach einer Spalte und konvertiere ihn in ein Wörterbuch mit Listen in Python?

Barbara Streisand
Barbara StreisandOriginal
2024-10-29 10:34:02201Durchsuche

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

GroupBy und Konvertieren von DataFrame in Dictionary of Lists

Bei einer Excel-Datei mit strukturierten Daten besteht das Ziel darin, die Daten zu extrahieren und zu gruppieren nach einer bestimmten Spalte und speichern Sie es in einem Python-Wörterbuch mit Listen als Werten. Das Datenformat in der Excel-Tabelle ist:

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

Lösung 1: groupby.apply().to_dict()

Um die Daten in das gewünschte Wörterbuch zu konvertieren Formatieren möchten, folgen Sie diesen Schritten:

  1. Lesen Sie die Excel-Datei mit pandas.read_excel() in einen DataFrame.
  2. Gruppieren Sie den DataFrame mit groupby() nach Spalte1.
  3. Extrahieren Sie die Werte aus Spalte3 und wenden Sie die Liste auf jede Gruppe an, um sie in Listen umzuwandeln.
  4. Konvertieren Sie das gruppierte Ergebnis mit to_dict() in ein Wörterbuch.
<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>

Lösung 2: Wörterbuchverständnis

Alternativ können Sie ein Wörterbuchverständnis verwenden, um das gleiche Ergebnis zu erzielen:

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

print(result)</code>

Die Ausgabe beider Lösungen lautet:

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

Das obige ist der detaillierte Inhalt vonWie gruppiere ich einen DataFrame nach einer Spalte und konvertiere ihn in ein Wörterbuch mit Listen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn