Wie teile ich eine Tupelspalte in separate Spalten in einem Pandas-Datenrahmen auf?

DDD
Freigeben: 2024-10-25 02:42:02
Original
673 Leute haben es durchsucht

How to split a column of tuples into separate columns in a Pandas dataframe?

So extrahieren Sie Tupel aus Pandas-Datenrahmenspalten

Problem:

In einem Pandas-Datenrahmen , ist es üblich, Spalten zu haben, die Tupel enthalten. Allerdings kann die Arbeit mit diesen Tupeln umständlich sein. Um die Analyse zu erleichtern, ist es oft wünschenswert, diese Spalten in mehrere Spalten aufzuteilen, die die einzelnen Tupelelemente enthalten.

Lösung:

Um eine Spalte mit Tupeln in separate Spalten umzuwandeln , folgen Sie diesen Schritten:

  1. Konvertieren Sie die Spalte mit der tolist()-Methode in eine Liste von Tupeln:

    <code class="python">column_list = column.tolist()</code>
    Nach dem Login kopieren
  2. Erstellen Sie eine neue Datenrahmen aus der Liste der Tupel:

    <code class="python">new_df = pd.DataFrame(column_list, index=dataframe.index)</code>
    Nach dem Login kopieren
  3. Weisen Sie den neuen Datenrahmen als neue Spalten dem ursprünglichen Datenrahmen zu:

    <code class="python">dataframe[['column_a', 'column_b']] = new_df[['0', '1']]</code>
    Nach dem Login kopieren

Beispiel:

Betrachten Sie den folgenden Datenrahmen:

<code class="python">>>> d1
   y norm test  y norm train  len(y_train)  len(y_test)  \
0    64.904368    116.151232          1645          549
1    70.852681    112.639876          1645          549

                                    SVR RBF  \
0   (35.652207342877873, 22.95533537448393)
1  (39.563683797747622, 27.382483096332511)

                                        LCV  \
0  (19.365430594452338, 13.880062435173587)
1  (19.099614489458364, 14.018867136617146)

                                   RIDGE CV  \
0  (4.2907610988480362, 12.416745648065584)
1    (4.18864306788194, 12.980833914392477)

                                         RF  \
0   (9.9484841581029428, 16.46902345373697)
1  (10.139848213735391, 16.282141345406522)

                                           GB  \
0  (0.012816232716538605, 15.950164822266007)
1  (0.012814519804493328, 15.305745202851712)

                                             ET DATA
0  (0.00034337162272515505, 16.284800366214057)  j2m
1  (0.00024811554516431878, 15.556506191784194)  j2m
>>></code>
Nach dem Login kopieren

Um die LCV-Spalte in die einzelnen Spalten LCV-a und LCV-b aufzuteilen, können Sie den folgenden Code verwenden:

<code class="python">df[['LCV-a', 'LCV-b']] = pd.DataFrame(df['LCV'].tolist(), index=df.index)</code>
Nach dem Login kopieren

Der resultierende Datenrahmen wird sein:

<code class="python">>>> df
   y norm test  y norm train  len(y_train)  len(y_test)  \
0    64.904368    116.151232          1645          549
1    70.852681    112.639876          1645          549

                                    SVR RBF  \
0   (35.652207342877873, 22.95533537448393)
1  (39.563683797747622, 27.382483096332511)

                                        LCV-a  LCV-b  \
0  19.365430594452338  13.880062435173587
1  19.099614489458364  14.018867136617146

                                   RIDGE CV  \
0  (4.2907610988480362, 12.416745648065584)
1    (4.18864306788194, 12.980833914392477)

                                         RF  \
0   (9.9484841581029428, 16.46902345373697)
1  (10.139848213735391, 16.282141345406522)

                                           GB  \
0  (0.012816232716538605, 15.950164822266007)
1  (0.012814519804493328, 15.305745202851712)

                                             ET DATA
0  (0.00034337162272515505, 16.284800366214057)  j2m
1  (0.00024811554516431878, 15.556506191784194)  j2m</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie teile ich eine Tupelspalte in separate Spalten in einem Pandas-Datenrahmen auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!