ホームページ  >  記事  >  バックエンド開発  >  Pandas データフレームでタプルの列を個別の列に分割するにはどうすればよいですか?

Pandas データフレームでタプルの列を個別の列に分割するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-25 02:42:02673ブラウズ

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

Pandas データフレームの列からタプルを抽出する方法

問題:

Pandas データフレーム内、タプルを含む列があるのが一般的です。ただし、これらのタプルの操作は面倒な場合があります。分析を容易にするために、これらの列を個々のタプル要素を含む複数の列に分割することが望ましいことがよくあります。

解決策:

タプルの列を個別の列に変換するには、次の手順に従います:

  1. tolist() メソッドを使用して列をタプルのリストに変換します:

    <code class="python">column_list = column.tolist()</code>
  2. 新規作成タプルのリストからのデータフレーム:

    <code class="python">new_df = pd.DataFrame(column_list, index=dataframe.index)</code>
  3. 新しいデータフレームを新しい列として元のデータフレームに割り当てます:

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

例:

次のデータフレームについて考えます:

<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>

LCV 列を個別の列 LCV-a と LCV-b に分割するには、次のコードを使用できます。

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

結果のデータフレームは次のようになります:

<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>

以上がPandas データフレームでタプルの列を個別の列に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。