Bagaimana untuk memisahkan lajur tupel kepada lajur berasingan dalam bingkai data Pandas?

DDD
Lepaskan: 2024-10-25 02:42:02
asal
673 orang telah melayarinya

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

Cara Mengekstrak Tuples daripada Lajur Bingkai Data Pandas

Masalah:

Dalam bingkai data Pandas , adalah perkara biasa untuk mempunyai lajur yang mengandungi tupel. Walau bagaimanapun, bekerja dengan tupel ini boleh menyusahkan. Untuk memudahkan analisis, selalunya wajar untuk membahagikan lajur ini kepada berbilang lajur yang mengandungi elemen tupel individu.

Penyelesaian:

Untuk menukar lajur tupel kepada lajur berasingan , ikut langkah berikut:

  1. Tukar lajur kepada senarai tupel menggunakan kaedah tolist():

    <code class="python">column_list = column.tolist()</code>
    Salin selepas log masuk
  2. Buat yang baharu bingkai data daripada senarai tupel:

    <code class="python">new_df = pd.DataFrame(column_list, index=dataframe.index)</code>
    Salin selepas log masuk
  3. Tetapkan bingkai data baharu sebagai lajur baharu kepada bingkai data asal:

    <code class="python">dataframe[['column_a', 'column_b']] = new_df[['0', '1']]</code>
    Salin selepas log masuk

Contoh:

Pertimbangkan rangka data berikut:

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

Untuk memisahkan lajur LCV kepada lajur individu LCV-a dan LCV-b, anda boleh menggunakan kod berikut:

<code class="python">df[['LCV-a', 'LCV-b']] = pd.DataFrame(df['LCV'].tolist(), index=df.index)</code>
Salin selepas log masuk

Kerangka data yang terhasil ialah:

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

Atas ialah kandungan terperinci Bagaimana untuk memisahkan lajur tupel kepada lajur berasingan dalam bingkai data Pandas?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!